diff options
author | Jeffrey H. Kingston <jeff@it.usyd.edu.au> | 2010-09-14 20:39:13 +0000 |
---|---|---|
committer | Jeffrey H. Kingston <jeff@it.usyd.edu.au> | 2010-09-14 20:39:13 +0000 |
commit | b2f1a4e879d3013974e41674dbf684d816f1aa95 (patch) | |
tree | 08292d39f5b0592c01946a2a754a93329ef599d3 /z23.c | |
parent | 7d292f1247e3287fb07a9a12377217ce8942cf09 (diff) | |
download | lout-b2f1a4e879d3013974e41674dbf684d816f1aa95.tar.gz |
Lout 3.30.
git-svn-id: http://svn.savannah.nongnu.org/svn/lout/trunk@29 9365b830-b601-4143-9ba8-b4a8e2c3339c
Diffstat (limited to 'z23.c')
-rw-r--r-- | z23.c | 50 |
1 files changed, 48 insertions, 2 deletions
@@ -1,7 +1,7 @@ /*@z23.c:Galley Printer:ScaleFactor()@****************************************/ /* */ -/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.29) */ -/* COPYRIGHT (C) 1991, 2003 Jeffrey H. Kingston */ +/* THE LOUT DOCUMENT FORMATTING SYSTEM (VERSION 3.30) */ +/* COPYRIGHT (C) 1991, 2004 Jeffrey H. Kingston */ /* */ /* Jeffrey H. Kingston (jeff@it.usyd.edu.au) */ /* School of Information Technologies */ @@ -388,6 +388,52 @@ OBJECT FixAndPrintObject(OBJECT x, FULL_LENGTH xmk, FULL_LENGTH xb, break; + case HMIRROR: + + if( BackEnd->mirror_avail ) + { + CountChild(y, Down(x), count); + if( dim == COLM ) + { + save_mark(x) = xmk; + y = FixAndPrintObject(y, 0, back(y, COLM), fwd(y, COLM), dim, + NO_SUPPRESS, pg, count, &aback, &afwd); + } + else + { BackEnd->SaveGraphicState(y); + BackEnd->CoordTranslate(save_mark(x), pg - xmk); + BackEnd->CoordHMirror(); + y = FixAndPrintObject(y, 0, back(y, ROWM), fwd(y, ROWM), dim, + NO_SUPPRESS, 0, count, &aback, &afwd); + BackEnd->RestoreGraphicState(); + } + } + *actual_back = xb; *actual_fwd = xf; + break; + + + case VMIRROR: + + debug0(DRS, DD, "FixAndPrintObject at VMIRROR"); + if( BackEnd->mirror_avail ) + { + CountChild(y, Down(x), count); + if( dim == COLM ) + y = FixAndPrintObject(y, xmk, xb, xf, dim, NO_SUPPRESS, pg, count, + &aback, &afwd); + else + { BackEnd->SaveGraphicState(y); + BackEnd->CoordTranslate(0, pg - xmk); + BackEnd->CoordVMirror(); + y = FixAndPrintObject(y, 0, back(y, ROWM), fwd(y, ROWM), dim, + NO_SUPPRESS, 0, count, &aback, &afwd); + BackEnd->RestoreGraphicState(); + } + } + *actual_back = xb; *actual_fwd = xf; + break; + + case VSCALE: debug0(DRS, DD, "FixAndPrintObject at VSCALE"); |