Spaces:
Sleeping
Sleeping
| % $Header: /cvsroot/html2ps/postscript/box.table.cell.ps,v 1.1 2005/12/18 07:21:37 Konstantin Exp $ | |
| /box-table-cell-apply-vertical-align { % => Baseline Height Cell | |
| dup /vertical-align | |
| get-css-value % => Baseline Height Cell Valign | |
| { % => Baseline Height Cell Valign | |
| dup /baseline eq { | |
| pop % => Baseline Height Cell | |
| 2 index | |
| 1 index box-table-cell-get-baseline | |
| sub % => Baseline Height Cell Delta | |
| 1 index get-top % => Baseline Height Cell Delta OldTop | |
| 1 index neg | |
| 0 | |
| 4 index /offset call-method % => Baseline Height Cell Delta OldTop | |
| 2 index put-top % => Baseline Height Cell Delta | |
| pop | |
| exit | |
| } if | |
| dup /bottom eq { | |
| pop % => Baseline Height Cell | |
| 1 index | |
| 1 index box-container-get-real-full-height | |
| sub % => Baseline Height Cell Delta | |
| 1 index get-top % => Baseline Height Cell Delta OldTop | |
| 1 index neg 0 | |
| 4 index | |
| /offset call-method % => Baseline Height Cell Delta OldTop | |
| 2 index put-top % => Baseline Height Cell Delta | |
| pop | |
| exit | |
| } if | |
| dup /middle eq { | |
| pop % => Baseline Height Cell | |
| 1 index | |
| 1 index box-container-get-real-full-height | |
| sub 2 div | |
| 0 max % => Baseline Height Cell Delta | |
| 1 index get-top % => Baseline Height Cell Delta OldTop | |
| 1 index neg 0 | |
| 4 index | |
| /offset call-method % => Baseline Height Cell Delta OldTop | |
| 2 index put-top % => Baseline Height Cell Delta | |
| pop | |
| exit | |
| } if | |
| dup /super eq { pop exit } if | |
| dup /sub eq { pop exit } if | |
| dup /text-top eq { pop exit } if | |
| dup /text-bottom eq { | |
| pop % => Baseline Height Cell | |
| 2 index | |
| 1 index box-table-cell-get-baseline | |
| sub % => Baseline Height Cell Delta | |
| 1 index get-top % => Baseline Height Cell Delta OldTop | |
| 1 index neg | |
| 0 | |
| 4 index /offset call-method % => Baseline Height Cell Delta OldTop | |
| 2 index put-top % => Baseline Height Cell Delta | |
| pop | |
| exit | |
| } if | |
| dup /top eq { pop exit } if | |
| pop exit | |
| } loop | |
| pop pop pop | |
| } def | |
| /box-table-cell-create { | |
| box-container-create | |
| dup box-table-cell-setup-methods | |
| dup /box-table-cell add-type | |
| dup /Colspan 1 put | |
| dup /Rowspan 1 put | |
| dup /column 0 put | |
| dup /row 0 put | |
| } def | |
| /box-table-cell-get-baseline { % => Cell | |
| dup box-container-get-first-data % => Cell First | |
| dup /null eq { | |
| pop pop 0 | |
| } { | |
| get-baseline exch pop | |
| } ifelse | |
| } def | |
| /box-table-cell-get-colspan { | |
| /Colspan get | |
| } def | |
| /box-table-cell-get-rowspan { | |
| /Rowspan get | |
| } def | |
| /box-table-cell-put-colspan { | |
| exch /Colspan exch put | |
| } def | |
| /box-table-cell-put-rowspan { | |
| exch /Rowspan exch put | |
| } def | |
| /box-table-cell-reflow { % => Context Parent Cell | |
| % Determine upper-left _content_ corner position of current box | |
| 1 index get-current-x | |
| 1 index get-extra-left add | |
| 1 index put-left % => Content Parent Cell | |
| % NOTE: Table cell margin is used as a cell-spacing value | |
| 1 index get-current-y | |
| 1 index get-border-top-width sub | |
| 1 index get-padding-top sub | |
| 1 index put-top % => Content Parent Cell | |
| % CSS 2.1: | |
| % Floats, absolutely positioned elements, inline-blocks, table-cells, and elements with 'overflow' other than | |
| % 'visible' establish new block formatting contexts. | |
| 2 index context-push | |
| dup get-uid | |
| 3 index context-push-container-uid | |
| % Reflow cell content | |
| 2 index 1 index | |
| box-container-reflow-content % => Content Parent Cell | |
| % Extend the table cell height to fit all contained floats | |
| % Determine the bottom edge corrdinate of the bottommost float | |
| 2 index context-float-bottom % => Content Parent Cell FloatBottom | |
| dup /null ne { | |
| 1 index box-generic-extend-height | |
| } { | |
| pop | |
| } ifelse % => Content Parent Cell | |
| % Restore old context | |
| 2 index context-pop-container-uid | |
| 2 index context-pop | |
| pop pop pop | |
| } def | |
| /box-table-cell-setup-methods { | |
| dup /Methods get | |
| dup /reflow {box-table-cell-reflow} put | |
| pop pop | |
| } def | |