From ce1374eb4985a11db6148beca8d2241d9f871a9c Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Mon, 29 May 2017 00:58:47 -0700 Subject: [PATCH] spawn --- pitfall/pitfall/embedded.rkt | 7 +++++++ pitfall/pitfall/font-open.rkt | 16 ++++++++++++++++ pitfall/pitfall/font.rkt | 18 +----------------- pitfall/pitfall/fonts.rkt | 2 +- 4 files changed, 25 insertions(+), 18 deletions(-) create mode 100644 pitfall/pitfall/embedded.rkt create mode 100644 pitfall/pitfall/font-open.rkt diff --git a/pitfall/pitfall/embedded.rkt b/pitfall/pitfall/embedded.rkt new file mode 100644 index 00000000..2baed24f --- /dev/null +++ b/pitfall/pitfall/embedded.rkt @@ -0,0 +1,7 @@ +#lang pitfall/racket +(require "font.rkt") +(provide EmbeddedFont) + +(define-subclass PDFFont (EmbeddedFont document name id) + (super-new) + 'boing) diff --git a/pitfall/pitfall/font-open.rkt b/pitfall/pitfall/font-open.rkt new file mode 100644 index 00000000..61edf046 --- /dev/null +++ b/pitfall/pitfall/font-open.rkt @@ -0,0 +1,16 @@ +#lang pitfall/racket +(require "standard-fonts.rkt" "font.rkt" "fontkit.rkt" "embedded.rkt") +(provide PDFFont-open) + +(define/contract (PDFFont-open document src family id) + (object? any/c any/c any/c . -> . (is-a?/c PDFFont)) + (cond + [(and (string? src) (isStandardFont src)) + (make-object StandardFont document src id)] + [else + (define font + (cond + [(string? src) (openSync src family)] + ;; todo: other font-loading cases + [else (raise-argument-error 'PDFFont-open "loadable font thingy" src)])) + (make-object EmbeddedFont document font id)])) diff --git a/pitfall/pitfall/font.rkt b/pitfall/pitfall/font.rkt index 12b13393..8318a450 100644 --- a/pitfall/pitfall/font.rkt +++ b/pitfall/pitfall/font.rkt @@ -1,6 +1,6 @@ #lang pitfall/racket (require "standard-fonts.rkt" "afm.rkt" "reference.rkt" "fontkit.rkt") -(provide PDFFont PDFFont-open) +(provide PDFFont StandardFont) (define PDFFont (class object% @@ -14,22 +14,6 @@ lineHeight) )) -(define-subclass PDFFont (EmbeddedFont document name id) - (super-new) - 'boing) - -(define/contract (PDFFont-open document src family id) - (object? any/c any/c any/c . -> . (is-a?/c PDFFont)) - (cond - [(and (string? src) (isStandardFont src)) - (make-object StandardFont document src id)] - [else - (define font - (cond - [(string? src) (openSync src family)] - ;; todo: other font-loading cases - [else (raise-argument-error 'PDFFont-open "loadable font thingy" src)])) - (make-object EmbeddedFont document font id)])) (define/contract (ref this) diff --git a/pitfall/pitfall/fonts.rkt b/pitfall/pitfall/fonts.rkt index cf257b30..8ceeba52 100644 --- a/pitfall/pitfall/fonts.rkt +++ b/pitfall/pitfall/fonts.rkt @@ -1,5 +1,5 @@ #lang pitfall/racket -(require "font.rkt") +(require "font.rkt" "font-open.rkt") (provide fonts-mixin) (define (fonts-mixin [% mixin-tester%])