diff options
author | Nickolay V. Shmyrev <nshmyrev@yandex.ru> | 2007-01-08 12:25:31 (GMT) |
---|---|---|
committer | Nickolay V. Shmyrev <nshmyrev@src.gnome.org> | 2007-01-08 12:25:31 (GMT) |
commit | 13a06349251874bd35d2f03c3fc93217cee749a2 (patch) | |
tree | a681279b008acb19f686ee265aaed2be0da8d9e8 /backend/dvi/mdvi-lib/paper.c | |
parent | afb550ab779e00918d8fe24742abee3a81ebfe93 (diff) |
Reorganize source tree.
2007-01-08 Nickolay V. Shmyrev <nshmyrev@yandex.ru>
* Makefile.am:
* backend/Makefile.am:
* backend/comics/Makefile.am:
* backend/djvu/Makefile.am:
* backend/dvi/Makefile.am:
* backend/ev-async-renderer.c:
* backend/ev-async-renderer.h:
* backend/ev-attachment.c:
* backend/ev-attachment.h:
* backend/ev-backend-marshal.c:
* backend/ev-document-factory.c:
* backend/ev-document-factory.h:
* backend/ev-document-find.c:
* backend/ev-document-find.h:
* backend/ev-document-fonts.c:
* backend/ev-document-fonts.h:
* backend/ev-document-images.c:
* backend/ev-document-images.h:
* backend/ev-document-info.h:
* backend/ev-document-links.c:
* backend/ev-document-links.h:
* backend/ev-document-misc.c:
* backend/ev-document-misc.h:
* backend/ev-document-security.c:
* backend/ev-document-security.h:
* backend/ev-document-thumbnails.c:
* backend/ev-document-thumbnails.h:
* backend/ev-document-transition.c:
* backend/ev-document-transition.h:
* backend/ev-document.c:
* backend/ev-document.h:
* backend/ev-file-exporter.c:
* backend/ev-file-exporter.h:
* backend/ev-image.c:
* backend/ev-image.h:
* backend/ev-link-action.c:
* backend/ev-link-action.h:
* backend/ev-link-dest.c:
* backend/ev-link-dest.h:
* backend/ev-link.c:
* backend/ev-link.h:
* backend/ev-render-context.c:
* backend/ev-render-context.h:
* backend/ev-selection.c:
* backend/ev-selection.h:
* backend/impress/Makefile.am:
* backend/pdf/Makefile.am:
* backend/pixbuf/Makefile.am:
* backend/ps/Makefile.am:
* backend/ps/ps-document.c: (push_pixbuf), (interpreter_failed),
(ps_document_widget_event), (setup_pixmap), (setup_page), (input),
(start_interpreter), (stop_interpreter), (document_load),
(ps_document_next_page), (render_page):
* backend/tiff/Makefile.am:
* comics/Makefile.am:
* comics/comics-document.c:
* comics/comics-document.h:
* configure.ac:
* cut-n-paste/zoom-control/ephy-zoom-control.c:
* djvu/Makefile.am:
* djvu/djvu-document-private.h:
* djvu/djvu-document.c:
* djvu/djvu-document.h:
* djvu/djvu-links.c:
* djvu/djvu-links.h:
* djvu/djvu-text-page.c:
* djvu/djvu-text-page.h:
* djvu/djvu-text.c:
* djvu/djvu-text.h:
* dvi/Makefile.am:
* dvi/dvi-document.c:
* dvi/dvi-document.h:
* dvi/fonts.c:
* dvi/fonts.h:
* dvi/mdvi-lib/Makefile.am:
* dvi/mdvi-lib/afmparse.c:
* dvi/mdvi-lib/afmparse.h:
* dvi/mdvi-lib/bitmap.c:
* dvi/mdvi-lib/bitmap.h:
* dvi/mdvi-lib/color.c:
* dvi/mdvi-lib/color.h:
* dvi/mdvi-lib/common.c:
* dvi/mdvi-lib/common.h:
* dvi/mdvi-lib/defaults.h:
* dvi/mdvi-lib/dvimisc.c:
* dvi/mdvi-lib/dviopcodes.h:
* dvi/mdvi-lib/dviread.c:
* dvi/mdvi-lib/files.c:
* dvi/mdvi-lib/font.c:
* dvi/mdvi-lib/fontmap.c:
* dvi/mdvi-lib/fontmap.h:
* dvi/mdvi-lib/fontsrch.c:
* dvi/mdvi-lib/gf.c:
* dvi/mdvi-lib/hash.c:
* dvi/mdvi-lib/hash.h:
* dvi/mdvi-lib/list.c:
* dvi/mdvi-lib/mdvi.h:
* dvi/mdvi-lib/pagesel.c:
* dvi/mdvi-lib/paper.c:
* dvi/mdvi-lib/paper.h:
* dvi/mdvi-lib/pk.c:
* dvi/mdvi-lib/private.h:
* dvi/mdvi-lib/setup.c:
* dvi/mdvi-lib/sp-epsf.c:
* dvi/mdvi-lib/special.c:
* dvi/mdvi-lib/sysdeps.h:
* dvi/mdvi-lib/t1.c:
* dvi/mdvi-lib/tfm.c:
* dvi/mdvi-lib/tfmfile.c:
* dvi/mdvi-lib/tt.c:
* dvi/mdvi-lib/util.c:
* dvi/mdvi-lib/vf.c:
* dvi/pixbuf-device.c:
* dvi/pixbuf-device.h:
* impress/Makefile.am:
* impress/common.h:
* impress/document.c:
* impress/f_oasis.c:
* impress/f_oo13.c:
* impress/iksemel.c:
* impress/iksemel.h:
* impress/imposter.h:
* impress/impress-document.c:
* impress/impress-document.h:
* impress/internal.h:
* impress/r_back.c:
* impress/r_draw.c:
* impress/r_geometry.c:
* impress/r_gradient.c:
* impress/r_style.c:
* impress/r_text.c:
* impress/render.c:
* impress/render.h:
* impress/zip.c:
* impress/zip.h:
* lib/Makefile.am:
* lib/ev-debug.c:
* lib/ev-debug.h:
* lib/ev-file-helpers.c:
* lib/ev-file-helpers.h:
* lib/ev-gui.c:
* lib/ev-gui.h:
* lib/ev-tooltip.c:
* lib/ev-tooltip.h:
* libdocument/Makefile.am:
* libdocument/ev-file-helpers.c:
* pdf/Makefile.am:
* pdf/ev-poppler.cc:
* pdf/ev-poppler.h:
* pixbuf/Makefile.am:
* pixbuf/pixbuf-document.c:
* pixbuf/pixbuf-document.h:
* properties/Makefile.am:
* ps/Makefile.am:
* ps/gsdefaults.c:
* ps/gsdefaults.h:
* ps/gsio.c:
* ps/gsio.h:
* ps/gstypes.h:
* ps/ps-document.c:
* ps/ps-document.h:
* ps/ps.c:
* ps/ps.h:
* shell/Makefile.am:
* shell/ev-application.h:
* shell/ev-sidebar-links.c:
* shell/ev-sidebar-links.h:
* shell/ev-utils.c: (ev_gui_sanitise_popup_position),
(ev_gui_menu_position_tree_selection):
* shell/ev-utils.h:
* shell/ev-view.c: (ev_view_finalize):
* shell/ev-window.c:
* shell/main.c: (main):
* thumbnailer/Makefile.am:
* tiff/Makefile.am:
* tiff/tiff-document.c:
* tiff/tiff-document.h:
* tiff/tiff2ps.c:
* tiff/tiff2ps.h:
Reorganize source tree.
svn path=/trunk/; revision=2197
Diffstat (limited to 'backend/dvi/mdvi-lib/paper.c')
-rw-r--r-- | backend/dvi/mdvi-lib/paper.c | 170 |
1 files changed, 170 insertions, 0 deletions
diff --git a/backend/dvi/mdvi-lib/paper.c b/backend/dvi/mdvi-lib/paper.c new file mode 100644 index 0000000..7a7412d --- /dev/null +++ b/backend/dvi/mdvi-lib/paper.c @@ -0,0 +1,170 @@ +/* + * Copyright (C) 2000, Matias Atria + * + * 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 <string.h> + +#include "common.h" +#include "mdvi.h" +#include "private.h" + +static const DviPaperSpec papers[] = { + {"ISO", 0, 0}, + {"4A0", "1682mm", "2378mm"}, + {"2A0", "1189mm", "1682mm"}, + {"A0", "841mm", "1189mm"}, + {"A1", "594mm", "841mm"}, + {"A2", "420mm", "594mm"}, + {"A3", "297mm", "420mm"}, + {"A4", "210mm", "297mm"}, + {"A5", "148mm", "210mm"}, + {"A6", "105mm", "148mm"}, + {"A7", "74mm", "105mm"}, + {"A8", "52mm", "74mm"}, + {"A9", "37mm", "52mm"}, + {"A10", "26mm", "37mm"}, + {"B0", "1000mm", "1414mm"}, + {"B1", "707mm", "1000mm"}, + {"B2", "500mm", "707mm"}, + {"B3", "353mm", "500mm"}, + {"B4", "250mm", "353mm"}, + {"B5", "176mm", "250mm"}, + {"B6", "125mm", "176mm"}, + {"B7", "88mm", "125mm"}, + {"B8", "62mm", "88mm"}, + {"B9", "44mm", "62mm"}, + {"B10", "31mm", "44mm"}, + {"C0", "917mm", "1297mm"}, + {"C1", "648mm", "917mm"}, + {"C2", "458mm", "648mm"}, + {"C3", "324mm", "458mm"}, + {"C4", "229mm", "324mm"}, + {"C5", "162mm", "229mm"}, + {"C6", "114mm", "162mm"}, + {"C7", "81mm", "114mm"}, + {"C8", "57mm", "81mm"}, + {"C9", "40mm", "57mm"}, + {"C10", "28mm", "40mm"}, + {"US", 0, 0}, + {"archA", "9in", "12in"}, + {"archB", "12in", "18in"}, + {"archC", "18in", "24in"}, + {"archD", "24in", "36in"}, + {"archE", "36in", "48in"}, + {"executive", "7.5in", "10in"}, + {"flsa", "8.5in", "13in"}, + {"flse", "8.5in", "13in"}, + {"halfletter", "5.5in", "8.5in"}, + {"letter", "8.5in", "11in"}, + {"legal", "8.5in", "14in"}, + {"ledger", "17in", "11in"}, + {"note", "7.5in", "10in"}, + {"tabloid", "11in", "17in"}, + {"statement", "5.5in", "8.5in"}, + {0, 0, 0} +}; + +static DviPaperClass str2class(const char *name) +{ + if(STRCEQ(name, "ISO")) + return MDVI_PAPER_CLASS_ISO; + else if(STRCEQ(name, "US")) + return MDVI_PAPER_CLASS_US; + return MDVI_PAPER_CLASS_CUSTOM; +} + +int mdvi_get_paper_size(const char *name, DviPaper *paper) +{ + const DviPaperSpec *sp; + double a, b; + char c, d, e, f; + char buf[32]; + + paper->pclass = MDVI_PAPER_CLASS_CUSTOM; + if(sscanf(name, "%lfx%lf%c%c", &a, &b, &c, &d) == 4) { + sprintf(buf, "%12.16f%c%c", a, c, d); + paper->inches_wide = unit2pix_factor(buf); + sprintf(buf, "%12.16f%c%c", b, c, d); + paper->inches_tall = unit2pix_factor(buf); + paper->name = _("custom"); + return 0; + } else if(sscanf(name, "%lf%c%c,%lf%c%c", &a, &c, &d, &b, &e, &f) == 6) { + sprintf(buf, "%12.16f%c%c", a, c, d); + paper->inches_wide = unit2pix_factor(buf); + sprintf(buf, "%12.16f%c%c", b, e, f); + paper->inches_tall = unit2pix_factor(buf); + paper->name = _("custom"); + return 0; + } + + for(sp = &papers[0]; sp->name; sp++) { + if(!sp->width || !sp->height) { + paper->pclass = str2class(sp->name); + continue; + } + if(strcasecmp(sp->name, name) == 0) { + paper->inches_wide = unit2pix_factor(sp->width); + paper->inches_tall = unit2pix_factor(sp->height); + paper->name = sp->name; + return 0; + } + } + return -1; +} + +DviPaperSpec *mdvi_get_paper_specs(DviPaperClass pclass) +{ + int i; + int first, count; + DviPaperSpec *spec, *ptr; + + first = -1; + count = 0; + if(pclass == MDVI_PAPER_CLASS_ANY || + pclass == MDVI_PAPER_CLASS_CUSTOM) { + first = 0; + count = (sizeof(papers) / sizeof(papers[0])) - 3; + } else for(i = 0; papers[i].name; i++) { + if(papers[i].width == NULL) { + if(str2class(papers[i].name) == pclass) + first = i; + else if(first >= 0) + break; + } else if(first >= 0) + count++; + } + ptr = spec = xnalloc(DviPaperSpec, count + 1); + for(i = first; papers[i].name&& count > 0; i++) { + if(papers[i].width) { + ptr->name = papers[i].name; + ptr->width = papers[i].width; + ptr->height = papers[i].height; + ptr++; + count--; + } + } + ptr->name = NULL; + ptr->width = NULL; + ptr->height = NULL; + + return spec; +} + +void mdvi_free_paper_specs(DviPaperSpec *spec) +{ + mdvi_free(spec); +} |