Spaces:
Sleeping
Sleeping
| /box-image-broken-create { % => | |
| box-image-generic-create | |
| dup box-image-broken-setup-methods | |
| dup /box-image-broken add-type | |
| } def | |
| /box-image-broken-setup-methods { | |
| dup /Methods get | |
| dup /show {box-image-broken-show} put | |
| pop pop | |
| } def | |
| /box-image-broken-show { % => Viewport This | |
| gsave | |
| 0.1 setlinewidth | |
| dup get-left 1 index get-top moveto | |
| dup get-right 1 index get-top lineto | |
| dup get-right 1 index get-bottom lineto | |
| dup get-left 1 index get-bottom lineto | |
| closepath | |
| stroke | |
| dup get-left 1 index get-top moveto | |
| dup get-right 1 index get-top lineto | |
| dup get-right 1 index get-bottom lineto | |
| dup get-left 1 index get-bottom lineto | |
| closepath | |
| clip | |
| % TODO: output ALT attribute | |
| grestore | |
| pop pop | |
| } def | |
| /box-image-create { % => Mask Image Init SY SX | |
| image-create | |
| box-image-generic-create | |
| dup box-image-setup-methods | |
| dup /box-image add-type % => Image Box | |
| dup /Image 3 index put | |
| exch pop | |
| } def | |
| /box-image-setup-methods { % => | |
| dup /Methods get | |
| dup /show {box-image-show} put | |
| pop pop | |
| } def | |
| /box-image-show { % => Viewport Box | |
| 2 copy box-generic-show | |
| % Check if "designer" set the height or width of this image to zero; in this there will be no reason | |
| % in drawing the image at all | |
| dup /get-width call-method 1 lt | |
| 1 index get-height 1 lt or { | |
| } { | |
| dup /Image get % => Viewport Box Image | |
| 1 index get-left | |
| 2 index get-bottom moveto % => Viewport Box Image | |
| 1 index /get-width call-method | |
| 2 index get-height % => Viewport Box Image W H | |
| 3 2 roll | |
| image-show % => Viewport Box | |
| } ifelse % => Viewport Box | |
| pop pop | |
| } def | |
| /box-image-generic-create { % => | |
| box-generic-inline-create | |
| dup box-image-generic-setup-methods | |
| dup /box-image-generic add-type | |
| dup /scale /none put | |
| dup /src-width 1 put | |
| dup /src-height 1 put | |
| } def | |
| /box-image-generic-get-max-width { % => Context This | |
| dup get-full-width | |
| exch pop | |
| exch pop | |
| } def | |
| /box-image-generic-get-min-width { % => Context This | |
| dup get-full-width | |
| exch pop | |
| exch pop | |
| } def | |
| /box-image-generic-get-scale { % => This | |
| /scale get | |
| } def | |
| /box-image-generic-get-src-height { | |
| /src-height get | |
| } def | |
| /box-image-generic-get-src-width { | |
| /src-width get | |
| } def | |
| /box-image-generic-pre-reflow-images { % => This | |
| dup box-image-generic-get-scale % => This Scale | |
| dup /width eq { % => This Scale | |
| 1 index box-image-generic-get-src-width | |
| 2 index box-image-generic-get-src-height div | |
| 2 index /get-width | |
| call-method mul % => This Scale Size | |
| dup 3 index put-height % => This Scale Size | |
| 2 index put-default-baseline % => This Scale | |
| } if | |
| dup /height eq { % => This Scale | |
| 1 index box-image-generic-get-src-height | |
| 2 index box-image-generic-get-src-width div | |
| 2 index get-height mul % => This Scale Size | |
| dup 3 index put-width % => This Scale Size | |
| dup wc-create-constant | |
| 3 index put-width-constraint % => This Scale Size | |
| 2 index put-default-baseline % => This Scale | |
| } if | |
| pop pop | |
| } def | |
| /box-image-generic-put-scale { % => Scale This | |
| exch % => This Scale | |
| /scale exch % => This /scale Scale | |
| put | |
| } def | |
| /box-image-generic-put-src-height {% => Scale This | |
| exch % => This Scale | |
| /src-height exch % => This /src-height Scale | |
| put | |
| } def | |
| /box-image-generic-put-src-width { % => Scale This | |
| exch % => This Scale | |
| /src-width exch % => This /src-width Scale | |
| put | |
| } def | |
| /box-image-generic-reflow { % => Context Parent This | |
| dup box-image-generic-pre-reflow-images | |
| % => Context Parent This | |
| % Check if we need a line break here | |
| 2 index | |
| 2 index | |
| 2 index | |
| /maybe-line-break call-method | |
| pop | |
| % set default baseline | |
| dup get-default-baseline | |
| 1 index put-baseline | |
| % append to parent line box | |
| dup 2 index | |
| box-container-append-line | |
| % Move box to the parent current point | |
| 1 index | |
| 1 index | |
| box-generic-guess-corner % => Context Parent This | |
| % Move parent's X coordinate | |
| 1 index get-current-x | |
| 1 index get-full-width | |
| add | |
| 2 index put-current-x % => Context Parent This | |
| % Extend parent height | |
| dup get-bottom-margin | |
| 2 index | |
| box-generic-extend-height % => Context Parent This | |
| pop pop pop | |
| } def | |
| /box-image-generic-setup-methods { | |
| dup /Methods get | |
| dup /get-max-width { box-image-generic-get-max-width } put | |
| dup /get-min-width { box-image-generic-get-min-width } put | |
| dup /pre-reflow-images { box-image-generic-pre-reflow-images } put | |
| dup /reflow { box-image-generic-reflow } put | |
| pop pop | |
| } def |