PrinterContext.st
author Stefan Vogel <sv@exept.de>
Tue, 19 Jul 2016 21:45:55 +0200
changeset 3709 ae76cdc6787a
parent 3315 c51703ef04b6
child 3720 f27814c1b52a
child 3730 74c5a7f7a679
permissions -rw-r--r--
Delegate GraphicsContext objects
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
     1
"{ Encoding: utf8 }"
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
     2
2184
c108f1291023 copyright methods
Claus Gittinger <cg@exept.de>
parents: 2147
diff changeset
     3
"
c108f1291023 copyright methods
Claus Gittinger <cg@exept.de>
parents: 2147
diff changeset
     4
 COPYRIGHT (c) 2006 by eXept Software AG
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
     5
	      All Rights Reserved
2184
c108f1291023 copyright methods
Claus Gittinger <cg@exept.de>
parents: 2147
diff changeset
     6
c108f1291023 copyright methods
Claus Gittinger <cg@exept.de>
parents: 2147
diff changeset
     7
 This software is furnished under a license and may be used
c108f1291023 copyright methods
Claus Gittinger <cg@exept.de>
parents: 2147
diff changeset
     8
 only in accordance with the terms of that license and with the
c108f1291023 copyright methods
Claus Gittinger <cg@exept.de>
parents: 2147
diff changeset
     9
 inclusion of the above copyright notice.   This software may not
c108f1291023 copyright methods
Claus Gittinger <cg@exept.de>
parents: 2147
diff changeset
    10
 be provided or otherwise made available to, or used by, any
c108f1291023 copyright methods
Claus Gittinger <cg@exept.de>
parents: 2147
diff changeset
    11
 other person.  No title to or ownership of the software is
c108f1291023 copyright methods
Claus Gittinger <cg@exept.de>
parents: 2147
diff changeset
    12
 hereby transferred.
c108f1291023 copyright methods
Claus Gittinger <cg@exept.de>
parents: 2147
diff changeset
    13
"
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
    14
'From Smalltalk/X, Version:7.1.0.0 on 18-07-2016 at 13:47:02'                   !
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
    15
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
    16
"{ Package: 'stx:libview2' }"
8f5996be6907 initial checkin
fm
parents:
diff changeset
    17
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
    18
"{ NameSpace: Smalltalk }"
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
    19
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
    20
DeviceGraphicsContext subclass:#PrinterContext
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
    21
	instanceVariableNames:'abort jobid printerInfo textAlign'
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
    22
	classVariableNames:''
8f5996be6907 initial checkin
fm
parents:
diff changeset
    23
	poolDictionaries:''
8f5996be6907 initial checkin
fm
parents:
diff changeset
    24
	category:'Interface-Printing'
8f5996be6907 initial checkin
fm
parents:
diff changeset
    25
!
8f5996be6907 initial checkin
fm
parents:
diff changeset
    26
2184
c108f1291023 copyright methods
Claus Gittinger <cg@exept.de>
parents: 2147
diff changeset
    27
!PrinterContext class methodsFor:'documentation'!
c108f1291023 copyright methods
Claus Gittinger <cg@exept.de>
parents: 2147
diff changeset
    28
c108f1291023 copyright methods
Claus Gittinger <cg@exept.de>
parents: 2147
diff changeset
    29
copyright
c108f1291023 copyright methods
Claus Gittinger <cg@exept.de>
parents: 2147
diff changeset
    30
"
c108f1291023 copyright methods
Claus Gittinger <cg@exept.de>
parents: 2147
diff changeset
    31
 COPYRIGHT (c) 2006 by eXept Software AG
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
    32
	      All Rights Reserved
2184
c108f1291023 copyright methods
Claus Gittinger <cg@exept.de>
parents: 2147
diff changeset
    33
c108f1291023 copyright methods
Claus Gittinger <cg@exept.de>
parents: 2147
diff changeset
    34
 This software is furnished under a license and may be used
c108f1291023 copyright methods
Claus Gittinger <cg@exept.de>
parents: 2147
diff changeset
    35
 only in accordance with the terms of that license and with the
c108f1291023 copyright methods
Claus Gittinger <cg@exept.de>
parents: 2147
diff changeset
    36
 inclusion of the above copyright notice.   This software may not
c108f1291023 copyright methods
Claus Gittinger <cg@exept.de>
parents: 2147
diff changeset
    37
 be provided or otherwise made available to, or used by, any
c108f1291023 copyright methods
Claus Gittinger <cg@exept.de>
parents: 2147
diff changeset
    38
 other person.  No title to or ownership of the software is
c108f1291023 copyright methods
Claus Gittinger <cg@exept.de>
parents: 2147
diff changeset
    39
 hereby transferred.
c108f1291023 copyright methods
Claus Gittinger <cg@exept.de>
parents: 2147
diff changeset
    40
"
2235
0df6bda4b353 pretty printed & added some documentation and examples
Claus Gittinger <cg@exept.de>
parents: 2184
diff changeset
    41
!
0df6bda4b353 pretty printed & added some documentation and examples
Claus Gittinger <cg@exept.de>
parents: 2184
diff changeset
    42
0df6bda4b353 pretty printed & added some documentation and examples
Claus Gittinger <cg@exept.de>
parents: 2184
diff changeset
    43
documentation
0df6bda4b353 pretty printed & added some documentation and examples
Claus Gittinger <cg@exept.de>
parents: 2184
diff changeset
    44
"
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
    45
    I am the mediator between the smalltalk printing protocol
2235
0df6bda4b353 pretty printed & added some documentation and examples
Claus Gittinger <cg@exept.de>
parents: 2184
diff changeset
    46
    (which is the same as the graphics drawing protocol) and the
0df6bda4b353 pretty printed & added some documentation and examples
Claus Gittinger <cg@exept.de>
parents: 2184
diff changeset
    47
    windows printer.
0df6bda4b353 pretty printed & added some documentation and examples
Claus Gittinger <cg@exept.de>
parents: 2184
diff changeset
    48
    When youopena printer, you will typically talk to me, and I will
0df6bda4b353 pretty printed & added some documentation and examples
Claus Gittinger <cg@exept.de>
parents: 2184
diff changeset
    49
    forward the graphics commands to my printer.
0df6bda4b353 pretty printed & added some documentation and examples
Claus Gittinger <cg@exept.de>
parents: 2184
diff changeset
    50
0df6bda4b353 pretty printed & added some documentation and examples
Claus Gittinger <cg@exept.de>
parents: 2184
diff changeset
    51
    [author:]
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
    52
	Felix Madrid (fm@exept.de)
2235
0df6bda4b353 pretty printed & added some documentation and examples
Claus Gittinger <cg@exept.de>
parents: 2184
diff changeset
    53
"
2184
c108f1291023 copyright methods
Claus Gittinger <cg@exept.de>
parents: 2147
diff changeset
    54
! !
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
    55
8f5996be6907 initial checkin
fm
parents:
diff changeset
    56
!PrinterContext class methodsFor:'instance creation'!
8f5996be6907 initial checkin
fm
parents:
diff changeset
    57
8f5996be6907 initial checkin
fm
parents:
diff changeset
    58
fromPrinterInfo: aPrinterInfo
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
    59
    self subclassResponsibility
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
    60
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
    61
    "Modified: / 16-04-2007 / 12:56:56 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
    62
! !
8f5996be6907 initial checkin
fm
parents:
diff changeset
    63
8f5996be6907 initial checkin
fm
parents:
diff changeset
    64
!PrinterContext class methodsFor:'accessing'!
8f5996be6907 initial checkin
fm
parents:
diff changeset
    65
8f5996be6907 initial checkin
fm
parents:
diff changeset
    66
default
2235
0df6bda4b353 pretty printed & added some documentation and examples
Claus Gittinger <cg@exept.de>
parents: 2184
diff changeset
    67
    "Answer the default Printer, or nil if none."
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
    68
2235
0df6bda4b353 pretty printed & added some documentation and examples
Claus Gittinger <cg@exept.de>
parents: 2184
diff changeset
    69
    |defaultName|
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
    70
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
    71
    ^ (defaultName := self defaultPrinterName) isNil
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
    72
	ifTrue:[ nil ]
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
    73
	ifFalse:[ self named:defaultName ]
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
    74
2235
0df6bda4b353 pretty printed & added some documentation and examples
Claus Gittinger <cg@exept.de>
parents: 2184
diff changeset
    75
    "
0df6bda4b353 pretty printed & added some documentation and examples
Claus Gittinger <cg@exept.de>
parents: 2184
diff changeset
    76
     self default
0df6bda4b353 pretty printed & added some documentation and examples
Claus Gittinger <cg@exept.de>
parents: 2184
diff changeset
    77
    "
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
    78
8f5996be6907 initial checkin
fm
parents:
diff changeset
    79
    "Created: / 27-07-2006 / 17:51:43 / fm"
8f5996be6907 initial checkin
fm
parents:
diff changeset
    80
    "Modified: / 02-08-2006 / 17:27:09 / fm"
2235
0df6bda4b353 pretty printed & added some documentation and examples
Claus Gittinger <cg@exept.de>
parents: 2184
diff changeset
    81
    "Modified: / 10-10-2006 / 17:30:31 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
    82
!
8f5996be6907 initial checkin
fm
parents:
diff changeset
    83
8f5996be6907 initial checkin
fm
parents:
diff changeset
    84
defaultMargins
2235
0df6bda4b353 pretty printed & added some documentation and examples
Claus Gittinger <cg@exept.de>
parents: 2184
diff changeset
    85
    "Private - answer aPoint containing the default horizontal and vertical
0df6bda4b353 pretty printed & added some documentation and examples
Claus Gittinger <cg@exept.de>
parents: 2184
diff changeset
    86
     margins for a page (units in inches)."
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
    87
2235
0df6bda4b353 pretty printed & added some documentation and examples
Claus Gittinger <cg@exept.de>
parents: 2184
diff changeset
    88
    ^ 0.5 @ 0.75
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
    89
8f5996be6907 initial checkin
fm
parents:
diff changeset
    90
    "Created: / 01-08-2006 / 16:09:31 / fm"
2235
0df6bda4b353 pretty printed & added some documentation and examples
Claus Gittinger <cg@exept.de>
parents: 2184
diff changeset
    91
    "Modified: / 10-10-2006 / 17:30:49 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
    92
!
8f5996be6907 initial checkin
fm
parents:
diff changeset
    93
8f5996be6907 initial checkin
fm
parents:
diff changeset
    94
defaultPrinterName
2235
0df6bda4b353 pretty printed & added some documentation and examples
Claus Gittinger <cg@exept.de>
parents: 2184
diff changeset
    95
    "Answer the name of the default printer, or nil if none."
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
    96
2303
06b20d5a52da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2300
diff changeset
    97
    |printerInfo printerName|
06b20d5a52da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2300
diff changeset
    98
06b20d5a52da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2300
diff changeset
    99
    printerInfo := OperatingSystem getDefaultPrinterName.
06b20d5a52da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2300
diff changeset
   100
    printerName := (printerInfo copyFrom:1 to:(printerInfo indexOf:$,) - 1) trimBlanks.
06b20d5a52da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2300
diff changeset
   101
    ^ printerName size == 0 ifTrue:[ nil ] ifFalse:[ printerName ]
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   102
2303
06b20d5a52da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2300
diff changeset
   103
    "
06b20d5a52da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2300
diff changeset
   104
     PrinterContext defaultPrinterName
06b20d5a52da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2300
diff changeset
   105
    "
06b20d5a52da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2300
diff changeset
   106
06b20d5a52da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2300
diff changeset
   107
    "Modified: / 02-08-2006 / 17:26:09 / fm"
06b20d5a52da *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2300
diff changeset
   108
    "Modified: / 10-10-2006 / 17:32:45 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   109
!
8f5996be6907 initial checkin
fm
parents:
diff changeset
   110
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   111
getPrinterInformation:printerNameString
2235
0df6bda4b353 pretty printed & added some documentation and examples
Claus Gittinger <cg@exept.de>
parents: 2184
diff changeset
   112
    " Answer the printer information for the printer named printerNameString.  If no name is specified,
2237
950fb103a14e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2236
diff changeset
   113
      answer the information for the default printer."
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   114
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   115
    self subclassResponsibility
2235
0df6bda4b353 pretty printed & added some documentation and examples
Claus Gittinger <cg@exept.de>
parents: 2184
diff changeset
   116
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   117
    "Modified: / 16-04-2007 / 12:56:31 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   118
!
8f5996be6907 initial checkin
fm
parents:
diff changeset
   119
8f5996be6907 initial checkin
fm
parents:
diff changeset
   120
named: aName
2235
0df6bda4b353 pretty printed & added some documentation and examples
Claus Gittinger <cg@exept.de>
parents: 2184
diff changeset
   121
    "Answer a new instance of Printer which represents
0df6bda4b353 pretty printed & added some documentation and examples
Claus Gittinger <cg@exept.de>
parents: 2184
diff changeset
   122
     the printer named aName as specified in the host
0df6bda4b353 pretty printed & added some documentation and examples
Claus Gittinger <cg@exept.de>
parents: 2184
diff changeset
   123
     Control Panel."
0df6bda4b353 pretty printed & added some documentation and examples
Claus Gittinger <cg@exept.de>
parents: 2184
diff changeset
   124
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   125
    aName isNil ifTrue: [ ^self default ].
2235
0df6bda4b353 pretty printed & added some documentation and examples
Claus Gittinger <cg@exept.de>
parents: 2184
diff changeset
   126
    ^self new printerInfoWithName: aName
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   127
8f5996be6907 initial checkin
fm
parents:
diff changeset
   128
    "Created: / 27-07-2006 / 17:51:27 / fm"
8f5996be6907 initial checkin
fm
parents:
diff changeset
   129
    "Modified: / 02-08-2006 / 17:26:29 / fm"
2235
0df6bda4b353 pretty printed & added some documentation and examples
Claus Gittinger <cg@exept.de>
parents: 2184
diff changeset
   130
    "Modified: / 10-10-2006 / 17:33:29 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   131
!
8f5996be6907 initial checkin
fm
parents:
diff changeset
   132
8f5996be6907 initial checkin
fm
parents:
diff changeset
   133
printerNames
2237
950fb103a14e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2236
diff changeset
   134
    "Answer a collection of all known printer names."
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   135
2237
950fb103a14e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2236
diff changeset
   136
    ^ OperatingSystem getPrintersNames
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   137
8f5996be6907 initial checkin
fm
parents:
diff changeset
   138
    "Created: / 27-07-2006 / 17:54:45 / fm"
2237
950fb103a14e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2236
diff changeset
   139
    "Modified: / 10-10-2006 / 18:57:51 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   140
! !
8f5996be6907 initial checkin
fm
parents:
diff changeset
   141
8f5996be6907 initial checkin
fm
parents:
diff changeset
   142
!PrinterContext methodsFor:'abort handling'!
8f5996be6907 initial checkin
fm
parents:
diff changeset
   143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   144
abortPrintJob
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   145
    "Abort the current print job."
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   146
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   147
    abort := true.
8f5996be6907 initial checkin
fm
parents:
diff changeset
   148
    jobid := nil.
8f5996be6907 initial checkin
fm
parents:
diff changeset
   149
8f5996be6907 initial checkin
fm
parents:
diff changeset
   150
    "Modified: / 02-08-2006 / 15:40:26 / fm"
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   151
    "Modified: / 10-10-2006 / 18:13:45 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   152
!
8f5996be6907 initial checkin
fm
parents:
diff changeset
   153
8f5996be6907 initial checkin
fm
parents:
diff changeset
   154
aborted
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   155
    "Answer whether the user aborted from PrintAbortDialog."
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   156
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   157
    ^ abort
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   158
8f5996be6907 initial checkin
fm
parents:
diff changeset
   159
    "Created: / 27-07-2006 / 10:20:10 / fm"
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   160
    "Modified: / 10-10-2006 / 18:13:50 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   161
! !
8f5996be6907 initial checkin
fm
parents:
diff changeset
   162
8f5996be6907 initial checkin
fm
parents:
diff changeset
   163
!PrinterContext methodsFor:'accessing'!
8f5996be6907 initial checkin
fm
parents:
diff changeset
   164
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   165
container
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   166
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   167
    ^self
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   168
!
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   169
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   170
getCharHeight
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   171
    "Private - answer the height of the font selected in the receiver's
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   172
     device context."
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   173
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   174
    self subclassResponsibility
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   175
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   176
    "Modified: / 16-04-2007 / 12:50:06 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   177
!
8f5996be6907 initial checkin
fm
parents:
diff changeset
   178
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   179
horizontalPixelsPerMeter
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   180
    "Answer horizontal pixels per meter on the screen."
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   181
    ^self pixelsPerInchOfScreenWidth  * 39.3700787
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   182
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   183
    "Modified: / 16-04-2007 / 12:55:21 / cg"
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   184
!
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   185
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   186
name
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   187
    "Answer the receiver's name from the current printerInfo."
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   188
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   189
    ^ self printerInfo printerName
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   190
8f5996be6907 initial checkin
fm
parents:
diff changeset
   191
    "Modified: / 02-08-2006 / 16:55:03 / fm"
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   192
    "Modified: / 10-10-2006 / 18:15:33 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   193
!
8f5996be6907 initial checkin
fm
parents:
diff changeset
   194
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   195
name:aName
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   196
    "Set the receiver's printer name to aName."
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   197
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   198
    self printerInfo:(self class getPrinterInformation:aName)
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   199
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   200
    "Modified: / 10-10-2006 / 18:15:36 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   201
!
8f5996be6907 initial checkin
fm
parents:
diff changeset
   202
8f5996be6907 initial checkin
fm
parents:
diff changeset
   203
numberOfColorBitsPerPixel
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   204
    self subclassResponsibility
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   205
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   206
    "Modified: / 16-04-2007 / 12:51:15 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   207
!
8f5996be6907 initial checkin
fm
parents:
diff changeset
   208
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   209
physicalOffsetX
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   210
    self subclassResponsibility
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   211
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   212
    "Modified: / 16-04-2007 / 12:54:23 / cg"
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   213
!
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   214
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   215
physicalOffsetY
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   216
    self subclassResponsibility
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   217
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   218
    "Modified: / 16-04-2007 / 12:52:17 / cg"
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   219
!
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   220
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   221
pixelsPerInchOfScreenHeight
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   222
    self subclassResponsibility
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   223
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   224
    "Modified: / 16-04-2007 / 12:54:17 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   225
!
8f5996be6907 initial checkin
fm
parents:
diff changeset
   226
8f5996be6907 initial checkin
fm
parents:
diff changeset
   227
pixelsPerInchOfScreenWidth
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   228
    self subclassResponsibility
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   229
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   230
    "Modified: / 16-04-2007 / 12:54:15 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   231
!
8f5996be6907 initial checkin
fm
parents:
diff changeset
   232
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   233
printerHeightArea
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   234
    self subclassResponsibility
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   235
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   236
    "Modified: / 16-04-2007 / 12:52:28 / cg"
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   237
!
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   238
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   239
printerInfo
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   240
    ^ printerInfo
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   241
8f5996be6907 initial checkin
fm
parents:
diff changeset
   242
    "Created: / 02-08-2006 / 16:55:17 / fm"
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   243
    "Modified: / 16-04-2007 / 12:52:36 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   244
!
8f5996be6907 initial checkin
fm
parents:
diff changeset
   245
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   246
printerInfo:aPrinterInfo
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   247
    printerInfo := aPrinterInfo
8f5996be6907 initial checkin
fm
parents:
diff changeset
   248
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   249
    "Modified: / 16-04-2007 / 12:54:07 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   250
!
8f5996be6907 initial checkin
fm
parents:
diff changeset
   251
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   252
printerInfoWithName:aName
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   253
    self printerInfo:(self class getPrinterInformation:aName).
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   254
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   255
    "Modified: / 16-04-2007 / 12:54:04 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   256
!
8f5996be6907 initial checkin
fm
parents:
diff changeset
   257
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   258
printerPhysicalHeight
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   259
    self subclassResponsibility
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   260
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   261
    "Modified: / 16-04-2007 / 12:54:00 / cg"
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   262
!
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   263
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   264
printerPhysicalWidth
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   265
    self subclassResponsibility
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   266
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   267
    "Modified: / 16-04-2007 / 12:53:56 / cg"
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   268
!
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   269
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   270
printerUserFriendlyName
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   271
    "Answer the receiver's name from the current printerInfo."
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   272
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   273
    ^ self printerInfo userFriendlyName
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   274
8f5996be6907 initial checkin
fm
parents:
diff changeset
   275
    "Created: / 03-08-2006 / 12:55:57 / fm"
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   276
    "Modified: / 10-10-2006 / 18:18:55 / cg"
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   277
!
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   278
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   279
printerWidthArea
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   280
    self subclassResponsibility
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   281
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   282
    "Modified: / 16-04-2007 / 12:53:51 / cg"
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   283
!
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   284
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   285
setPrinterFont:aFont
2273
14e357a2c73f changed #setPrinterFont:
fm
parents: 2272
diff changeset
   286
14e357a2c73f changed #setPrinterFont:
fm
parents: 2272
diff changeset
   287
    self font: aFont
14e357a2c73f changed #setPrinterFont:
fm
parents: 2272
diff changeset
   288
14e357a2c73f changed #setPrinterFont:
fm
parents: 2272
diff changeset
   289
    "Created: / 27-11-2006 / 14:50:55 / User"
14e357a2c73f changed #setPrinterFont:
fm
parents: 2272
diff changeset
   290
!
14e357a2c73f changed #setPrinterFont:
fm
parents: 2272
diff changeset
   291
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   292
setTextAlign:aNumber
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   293
    textAlign :=aNumber.
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   294
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   295
    "Modified: / 16-04-2007 / 12:53:26 / cg"
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   296
!
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   297
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   298
setViewportOrg: aPoint
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   299
    self subclassResponsibility
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   300
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   301
    "Modified: / 16-04-2007 / 12:53:44 / cg"
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   302
!
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   303
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   304
verticalPixelsPerMeter
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   305
    "Answer vertical pixels per meter on the screen."
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   306
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   307
    ^self pixelsPerInchOfScreenHeight * 39.3700787
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   308
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   309
    "Modified: / 16-04-2007 / 12:54:43 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   310
! !
8f5996be6907 initial checkin
fm
parents:
diff changeset
   311
8f5996be6907 initial checkin
fm
parents:
diff changeset
   312
!PrinterContext methodsFor:'initialization & release'!
8f5996be6907 initial checkin
fm
parents:
diff changeset
   313
8f5996be6907 initial checkin
fm
parents:
diff changeset
   314
buildPrinter
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   315
    "Private - create all the operating system resources needed."
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   316
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   317
    self
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   318
	createDC;
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   319
	initExtent
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   320
8f5996be6907 initial checkin
fm
parents:
diff changeset
   321
    "Created: / 27-07-2006 / 10:20:36 / fm"
8f5996be6907 initial checkin
fm
parents:
diff changeset
   322
    "Modified: / 01-08-2006 / 15:57:49 / fm"
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   323
    "Modified: / 10-10-2006 / 18:14:04 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   324
!
8f5996be6907 initial checkin
fm
parents:
diff changeset
   325
8f5996be6907 initial checkin
fm
parents:
diff changeset
   326
createDC
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   327
    "Private - Create a device context for the receiver"
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   328
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   329
    self subclassResponsibility
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   330
8f5996be6907 initial checkin
fm
parents:
diff changeset
   331
    "Created: / 27-07-2006 / 10:21:05 / fm"
8f5996be6907 initial checkin
fm
parents:
diff changeset
   332
    "Modified: / 02-08-2006 / 17:30:47 / fm"
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   333
    "Modified: / 16-04-2007 / 12:49:22 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   334
!
8f5996be6907 initial checkin
fm
parents:
diff changeset
   335
8f5996be6907 initial checkin
fm
parents:
diff changeset
   336
initExtent
8f5996be6907 initial checkin
fm
parents:
diff changeset
   337
    "Private - init the width and height of GraphicsTool for the receiver."
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   338
3287
11a9d55d663c class: PrinterContext
Stefan Vogel <sv@exept.de>
parents: 2565
diff changeset
   339
    self graphicsDevice
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   340
        width:self printerWidthArea;
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   341
        height:self printerHeightArea.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   342
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   343
8f5996be6907 initial checkin
fm
parents:
diff changeset
   344
    "Modified: / 01-08-2006 / 16:14:49 / fm"
2314
45d7ac6cc556 changed #endPrintJob
fm
parents: 2303
diff changeset
   345
!
45d7ac6cc556 changed #endPrintJob
fm
parents: 2303
diff changeset
   346
45d7ac6cc556 changed #endPrintJob
fm
parents: 2303
diff changeset
   347
releaseDC
45d7ac6cc556 changed #endPrintJob
fm
parents: 2303
diff changeset
   348
    "Private - Closes the device context of the receiver"
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   349
2314
45d7ac6cc556 changed #endPrintJob
fm
parents: 2303
diff changeset
   350
    self subclassResponsibility
45d7ac6cc556 changed #endPrintJob
fm
parents: 2303
diff changeset
   351
45d7ac6cc556 changed #endPrintJob
fm
parents: 2303
diff changeset
   352
    "Created: / 27-07-2006 / 10:21:05 / fm"
45d7ac6cc556 changed #endPrintJob
fm
parents: 2303
diff changeset
   353
    "Modified: / 02-08-2006 / 17:30:47 / fm"
45d7ac6cc556 changed #endPrintJob
fm
parents: 2303
diff changeset
   354
    "Modified: / 16-04-2007 / 12:49:22 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   355
! !
8f5996be6907 initial checkin
fm
parents:
diff changeset
   356
8f5996be6907 initial checkin
fm
parents:
diff changeset
   357
!PrinterContext methodsFor:'printing'!
8f5996be6907 initial checkin
fm
parents:
diff changeset
   358
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   359
print:aString font:aFont title:aTitle wordWrap:wordWrapBoolean marginsRect:aMarginsRect
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   360
    "Answer the receiver.  Output the receiver string to
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   361
     the printer using aFont.  A Print abort dialog box will be opened
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   362
     with aTitle.  If collateBoolean is true, collate output, otherwise
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   363
     do not.  Print copiesInteger copies of the specified string.  If
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   364
     wordWrapBoolean is true, word wrap the lines, otherwise do not.
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   365
     Left, top, right & bottom margins are specified in inches in
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   366
     aMarginsRect."
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   367
2247
b0a3ddb53d25 Simple Windows Stream Printing Support
fm
parents: 2237
diff changeset
   368
    |lines linesPerPage totalPage marginsRect firstPage abortDialog|
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   369
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   370
    jobid isNil ifTrue:[
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   371
	self startPrintJob:aTitle
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   372
    ].
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   373
    abortDialog := PrintAbortDialog new open:aTitle printer:self.
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   374
    self font:aFont.
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   375
    marginsRect := self marginsRectangleFor:aMarginsRect.
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   376
    lines := self
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   377
		asArrayOfStringLines:aString
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   378
		in:marginsRect
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   379
		wordWrap:wordWrapBoolean.
2247
b0a3ddb53d25 Simple Windows Stream Printing Support
fm
parents: 2237
diff changeset
   380
    linesPerPage := self linesPerPageFor: marginsRect.
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   381
    totalPage := (lines size + linesPerPage - 1) // linesPerPage.
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   382
    firstPage := true.
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   383
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   384
"/    collateBoolean
8f5996be6907 initial checkin
fm
parents:
diff changeset
   385
"/        ifTrue: [
8f5996be6907 initial checkin
fm
parents:
diff changeset
   386
"/            copiesInteger timesRepeat: [
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   387
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   388
    1 to:totalPage do:[:page |
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   389
	abort ifTrue:[ ^ self ].
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   390
	firstPage ifFalse:[
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   391
	    self formFeed
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   392
	].
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   393
	abortDialog
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   394
	    updatePrintingPageInfo:(self class classResources
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   395
				    string:'Page %1/%2'
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   396
				    with:page printString
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   397
				    with:totalPage printString).
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   398
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   399
"/      self device font: printerFont.
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   400
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   401
	self font:aFont.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   402
	self
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   403
	    printPage:page
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   404
	    in:marginsRect
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   405
	    lines:lines
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   406
	    linesPerPage:linesPerPage.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   407
	firstPage := false
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   408
    ].
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   409
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   410
"/            ]
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   411
"/        ] ifFalse: [
8f5996be6907 initial checkin
fm
parents:
diff changeset
   412
"/            1 to: totalPage do: [ :page |
8f5996be6907 initial checkin
fm
parents:
diff changeset
   413
"/                copiesInteger timesRepeat: [
8f5996be6907 initial checkin
fm
parents:
diff changeset
   414
"/                    abort ifTrue: [ ^self endPrintJob ].
8f5996be6907 initial checkin
fm
parents:
diff changeset
   415
"/                    firstPage ifFalse: [ self formFeed ].
8f5996be6907 initial checkin
fm
parents:
diff changeset
   416
"/                    self device font: printerFont.
8f5996be6907 initial checkin
fm
parents:
diff changeset
   417
"/                    self printPage: page in: marginsRect lines: lines linesPerPage: linesPerPage.
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   418
"/                    firstPage := false
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   419
"/                 ]
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   420
"/            ]
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   421
"/        ].
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   422
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   423
    jobid notNil ifTrue:[
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   424
	self endPrintJob.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   425
	abortDialog close.
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   426
    ].
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   427
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   428
    "/    abort ifFalse: [ abortDialog close ]
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   429
8f5996be6907 initial checkin
fm
parents:
diff changeset
   430
    "Created: / 03-08-2006 / 16:13:33 / fm"
8f5996be6907 initial checkin
fm
parents:
diff changeset
   431
    "Modified: / 04-08-2006 / 13:40:02 / fm"
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   432
    "Modified: / 10-10-2006 / 18:16:54 / cg"
2247
b0a3ddb53d25 Simple Windows Stream Printing Support
fm
parents: 2237
diff changeset
   433
    "Modified: / 12-10-2006 / 11:50:37 / User"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   434
!
8f5996be6907 initial checkin
fm
parents:
diff changeset
   435
2274
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   436
print: aString
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   437
    pageHeader: aString2
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   438
    font: aFont
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   439
    title: aTitle
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   440
    collate: collateBoolean
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   441
    copies: copiesInteger
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   442
    wordWrap: wordWrapBoolean
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   443
    marginsRect: aMarginsRect
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   444
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   445
	"Private - Answer the receiver.  Output the receiver string to
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   446
	the printer using aFont.  A Print abort dialog box will be opened
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   447
	with aTitle.  If collateBoolean is true, collate output, otherwise
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   448
	do not.  Print copiesInteger copies of the specified string.  If
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   449
	wordWrapBoolean is true, word wrap the lines, otherwise do not.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   450
	Left, top, right & bottom margins are specified in inches in
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   451
	aMarginsRect.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   452
	Mg: Erweitert um pageHeader"
2274
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   453
       "Changed by K3/EES5-Mg, 08.01.96"
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   454
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   455
    | lines linesPerPage totalPage marginsRect firstPage charHeight  printerFont headerLines|
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   456
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   457
    printerFont := self setPrinterFont: aFont.
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   458
    charHeight := self "pen" getCharHeight.
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   459
    marginsRect := self marginsRectangleFor: aMarginsRect.
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   460
    lines := self "pen" asArrayOfStringLines: aString in: marginsRect wordWrap: wordWrapBoolean.
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   461
    headerLines := self "pen" asArrayOfStringLines: aString2 in: marginsRect wordWrap: wordWrapBoolean.
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   462
    linesPerPage := marginsRect bottom - marginsRect top // charHeight.
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   463
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   464
    linesPerPage > headerLines size
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   465
	ifFalse:
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   466
	  [Dialog information: 'Der Dokumentenkopf ist zu groß; wird ignoriert!!'.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   467
	   headerLines := #().
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   468
	  ]
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   469
	ifTrue: [linesPerPage := linesPerPage - headerLines size].
2274
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   470
    totalPage := lines size + linesPerPage - 1 // linesPerPage.
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   471
    firstPage := true.
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   472
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   473
"/    collateBoolean
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   474
"/        ifTrue: [
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   475
"/            copiesInteger timesRepeat: [
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   476
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   477
		1 to: totalPage do: [ :page |
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   478
		    abort ifTrue: [ ^self endPrintJob ].
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   479
		    firstPage ifFalse: [ self formFeed ].
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   480
		    self "pen" font: aFont "printerFont".
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   481
		    self printPage: page in: marginsRect lines: lines headerLines: headerLines linesPerPage: linesPerPage.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   482
		    firstPage := false ]
2274
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   483
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   484
"/              ]
2274
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   485
"/          ]
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   486
"/        ifFalse: [
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   487
"/            1 to: totalPage do: [ :page |
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   488
"/                copiesInteger timesRepeat: [
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   489
"/                    abort ifTrue: [ ^self endPrintJob ].
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   490
"/                    firstPage ifFalse: [ self formFeed ].
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   491
"/                    self "pen" font: printerFont.
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   492
"/                    self printPage: page in: marginsRect lines: lines headerLines: headerLines linesPerPage: linesPerPage.
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   493
"/                    firstPage := false ] ] ].
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   494
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   495
    "Created: / 30-11-2006 / 13:19:06 / User"
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   496
!
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   497
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   498
print:aString pageHeader:aString2 font:aFont title:aTitle wordWrap:wordWrapBoolean marginsRect:aMarginsRect
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   499
    "Private - Answer the receiver.  Output the receiver string to
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   500
     the printer using aFont.  A Print abort dialog box will be opened
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   501
     with aTitle.  If collateBoolean is true, collate output, otherwise
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   502
     do not.  Print copiesInteger copies of the specified string.  If
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   503
     wordWrapBoolean is true, word wrap the lines, otherwise do not.
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   504
     Left, top, right & bottom margins are specified in inches in
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   505
     aMarginsRect."
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   506
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   507
    |lines linesPerPage totalPage marginsRect firstPage charHeight printerFont headerLines|
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   508
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   509
    self font:aFont.
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   510
    charHeight := self getCharHeight.
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   511
    marginsRect := self marginsRectangleFor:aMarginsRect.
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   512
    lines := self
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   513
		asArrayOfStringLines:aString
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   514
		in:marginsRect
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   515
		wordWrap:wordWrapBoolean.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   516
    headerLines := self
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   517
		asArrayOfStringLines:aString2
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   518
		in:marginsRect
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   519
		wordWrap:wordWrapBoolean.
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   520
    linesPerPage := (marginsRect bottom - marginsRect top) // charHeight.
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   521
    linesPerPage > headerLines size ifFalse:[
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   522
	Dialog information:(self class classResources
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   523
				string:'The header is too large - ignored!!').
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   524
	headerLines := #().
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   525
    ] ifTrue:[
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   526
	linesPerPage := linesPerPage - headerLines size
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   527
    ].
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   528
    totalPage := (lines size + linesPerPage - 1) // linesPerPage.
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   529
    firstPage := true.
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   530
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   531
"/    collateBoolean
8f5996be6907 initial checkin
fm
parents:
diff changeset
   532
"/        ifTrue: [
8f5996be6907 initial checkin
fm
parents:
diff changeset
   533
"/            copiesInteger timesRepeat: [
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   534
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   535
    1 to:totalPage do:[:page |
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   536
	abort ifTrue:[ ^ self ].
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   537
	firstPage ifFalse:[
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   538
	    self formFeed
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   539
	].
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   540
	self font:printerFont.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   541
	self
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   542
	    printPage:page
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   543
	    in:marginsRect
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   544
	    lines:lines
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   545
	    headerLines:headerLines
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   546
	    linesPerPage:linesPerPage.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   547
	firstPage := false
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   548
    ]
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   549
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   550
    "/            ]
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   551
    "/        ] ifFalse: [
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   552
    "/            1 to: totalPage do: [ :page |
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   553
    "/                copiesInteger timesRepeat: [
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   554
    "/                    abort ifTrue: [ ^self endPrintJob ].
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   555
    "/                    firstPage ifFalse: [ self formFeed ].
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   556
    "/                    self device font: printerFont.
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   557
    "/                    self printPage: page in: marginsRect lines: lines headerLines: headerLines linesPerPage: linesPerPage.
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   558
    "/                    firstPage := false
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   559
    "/                ]
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   560
    "/            ]
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   561
    "/        ].
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   562
8f5996be6907 initial checkin
fm
parents:
diff changeset
   563
    "Created: / 03-08-2006 / 16:14:10 / fm"
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   564
    "Modified: / 10-10-2006 / 18:18:03 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   565
! !
8f5996be6907 initial checkin
fm
parents:
diff changeset
   566
2147
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   567
!PrinterContext methodsFor:'printing process'!
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   568
8f5996be6907 initial checkin
fm
parents:
diff changeset
   569
endPage
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   570
    "Informs device that we are finished writing to a page."
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   571
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   572
    self subclassResponsibility
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   573
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   574
    "Modified: / 16-04-2007 / 12:47:31 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   575
!
8f5996be6907 initial checkin
fm
parents:
diff changeset
   576
8f5996be6907 initial checkin
fm
parents:
diff changeset
   577
endPrintJob
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   578
    "End the print job.  Everything drawn between startPrintJob
2314
45d7ac6cc556 changed #endPrintJob
fm
parents: 2303
diff changeset
   579
     and endPrintJob will become one entry in the print queue.
45d7ac6cc556 changed #endPrintJob
fm
parents: 2303
diff changeset
   580
     Close and clean the device context of the receiver"
45d7ac6cc556 changed #endPrintJob
fm
parents: 2303
diff changeset
   581
45d7ac6cc556 changed #endPrintJob
fm
parents: 2303
diff changeset
   582
    self endPrintJobWithoutRelease.
45d7ac6cc556 changed #endPrintJob
fm
parents: 2303
diff changeset
   583
    self releaseDC.
45d7ac6cc556 changed #endPrintJob
fm
parents: 2303
diff changeset
   584
45d7ac6cc556 changed #endPrintJob
fm
parents: 2303
diff changeset
   585
    "Modified: / 16-04-2007 / 12:47:28 / cg"
45d7ac6cc556 changed #endPrintJob
fm
parents: 2303
diff changeset
   586
!
45d7ac6cc556 changed #endPrintJob
fm
parents: 2303
diff changeset
   587
45d7ac6cc556 changed #endPrintJob
fm
parents: 2303
diff changeset
   588
endPrintJobWithoutRelease
45d7ac6cc556 changed #endPrintJob
fm
parents: 2303
diff changeset
   589
    "End the print job.  Everything drawn between startPrintJob
45d7ac6cc556 changed #endPrintJob
fm
parents: 2303
diff changeset
   590
     and endPrintJob will become one entry in the print queue.
45d7ac6cc556 changed #endPrintJob
fm
parents: 2303
diff changeset
   591
     Won't close the DC "
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   592
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   593
    self subclassResponsibility
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   594
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   595
    "Modified: / 16-04-2007 / 12:47:28 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   596
!
8f5996be6907 initial checkin
fm
parents:
diff changeset
   597
8f5996be6907 initial checkin
fm
parents:
diff changeset
   598
formFeed
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   599
    "Send a form feed to the printer."
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   600
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   601
    self
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   602
	endPage;
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   603
	startPage
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   604
8f5996be6907 initial checkin
fm
parents:
diff changeset
   605
    "Created: / 27-07-2006 / 18:25:40 / fm"
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   606
    "Modified: / 10-10-2006 / 18:15:07 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   607
!
8f5996be6907 initial checkin
fm
parents:
diff changeset
   608
8f5996be6907 initial checkin
fm
parents:
diff changeset
   609
startPage
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   610
    "Starts a page."
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   611
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   612
    self subclassResponsibility
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   613
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   614
    "Modified: / 16-04-2007 / 12:47:13 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   615
!
8f5996be6907 initial checkin
fm
parents:
diff changeset
   616
8f5996be6907 initial checkin
fm
parents:
diff changeset
   617
startPrintJob
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   618
    "Start a print job.  Everything drawn between startPrintJob
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   619
     and endPrintJob will become one entry in the print queue."
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   620
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   621
    self startPrintJob:nil
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   622
8f5996be6907 initial checkin
fm
parents:
diff changeset
   623
    "Created: / 27-07-2006 / 18:18:52 / fm"
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   624
    "Modified: / 10-10-2006 / 18:19:05 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   625
!
8f5996be6907 initial checkin
fm
parents:
diff changeset
   626
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   627
startPrintJob:aString
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   628
    "Start a print job, using aString as the job title; everything
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   629
     drawn between startPrintJob and endPrintJob will become
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   630
     one entry in the print queue."
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   631
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   632
    ^ self startPrintJob:aString fileName:nil
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   633
8f5996be6907 initial checkin
fm
parents:
diff changeset
   634
    "Created: / 27-07-2006 / 18:19:09 / fm"
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   635
    "Modified: / 10-10-2006 / 18:19:12 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   636
!
8f5996be6907 initial checkin
fm
parents:
diff changeset
   637
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   638
startPrintJob:aString fileName:aFileName
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   639
    "Start a print job, using aString as the job title; everything
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   640
     drawn between startPrintJob and endPrintJob will become
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   641
     one entry in the print queue."
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   642
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   643
    self subclassResponsibility
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   644
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   645
    "Modified: / 16-04-2007 / 12:46:58 / cg"
2147
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   646
! !
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   647
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   648
!PrinterContext methodsFor:'queries'!
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   649
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   650
supportsColor
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   651
    ^ false.
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   652
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   653
    "Modified: / 16-04-2007 / 12:44:19 / cg"
2147
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   654
!
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   655
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   656
supportsGraphics
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   657
    ^ false
2147
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   658
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   659
    "Modified: / 16-04-2007 / 12:44:29 / cg"
2147
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   660
! !
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   661
2322
7ea80c2356c7 + isPrinterContext
fm
parents: 2314
diff changeset
   662
!PrinterContext methodsFor:'testing'!
7ea80c2356c7 + isPrinterContext
fm
parents: 2314
diff changeset
   663
7ea80c2356c7 + isPrinterContext
fm
parents: 2314
diff changeset
   664
isPrinterContext
7ea80c2356c7 + isPrinterContext
fm
parents: 2314
diff changeset
   665
7ea80c2356c7 + isPrinterContext
fm
parents: 2314
diff changeset
   666
    ^true
7ea80c2356c7 + isPrinterContext
fm
parents: 2314
diff changeset
   667
! !
7ea80c2356c7 + isPrinterContext
fm
parents: 2314
diff changeset
   668
2147
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   669
!PrinterContext methodsFor:'text printing'!
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   670
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   671
asArrayOfStringLines:aString in:aRectangle wordWrap:wordWrapBoolean
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   672
    "Private - convert aString into an array of lines; if wordWrapBoolean
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   673
     is true, also perform word wrapping on the lines, within aRectangle."
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   674
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   675
    |line lines stream x0 x1 partialLine leftMargin rightMargin partialLineWidth index|
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   676
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   677
    stream := ReadStream on:aString.
2147
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   678
    lines := OrderedCollection new.
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   679
    wordWrapBoolean ifTrue:[
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   680
	leftMargin := aRectangle left.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   681
	rightMargin := aRectangle right
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   682
    ].
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   683
    [ stream atEnd ] whileFalse:[
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   684
	line := stream nextLine.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   685
	wordWrapBoolean ifFalse:[
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   686
	    lines add:line
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   687
	] ifTrue:[
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   688
	    x0 := x1 := 1.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   689
	    1 to:line size do:[:i |
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   690
		((line at:i) = Character space "32"
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   691
		    and:[ (partialLine := line copyFrom:x0 to:i) trimBlanks notEmpty ])
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   692
			ifTrue:[
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   693
			    partialLineWidth := self stringWidthOf:partialLine.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   694
			    (leftMargin + partialLineWidth) > rightMargin ifTrue:[
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   695
				partialLine := line copyFrom:x0 to:x1.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   696
				lines add:partialLine.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   697
				x0 := x1 + 1
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   698
			    ] ifFalse:[ x1 := i ]
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   699
			].
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   700
		index := i
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   701
	    ].
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   702
	    line isEmpty ifTrue:[
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   703
		lines add:line
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   704
	    ] ifFalse:[
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   705
		partialLine := line copyFrom:x0 to:index.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   706
		partialLineWidth := self stringWidthOf:partialLine.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   707
		(leftMargin + partialLineWidth) > rightMargin ifTrue:[
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   708
		    partialLine := line copyFrom:x0 to:x1.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   709
		    lines add:partialLine.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   710
		    partialLine := line copyFrom:x1 + 1 to:index
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   711
		].
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   712
		lines add:partialLine
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   713
	    ]
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   714
	]
2147
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   715
    ].
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   716
    ^ lines asArray
2147
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   717
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   718
    "Created: / 02-08-2006 / 17:56:51 / fm"
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   719
    "Modified: / 04-08-2006 / 13:39:50 / fm"
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   720
    "Modified: / 10-10-2006 / 18:14:00 / cg"
2147
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   721
!
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   722
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   723
displayString:aString at:aPoint in:aRect options:ignoredForNow adx:unknownForNow
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   724
    |x y|
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   725
    x := aPoint x.
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   726
    y := aPoint y.
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   727
    (textAlign isNil or:[textAlign == 0 ]) ifTrue:[
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   728
	self displayString:aString at:aPoint.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   729
	^ self
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   730
    ].
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   731
    (textAlign == 8 "TaBottom") ifTrue:[
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   732
	y := aPoint y - (self container font ascent) "container font ascent".
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   733
    ] ifFalse:[ (textAlign == 6 "TaCenter") ifTrue:[
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   734
"/        x := aRect left + ((aRect width-(container font widthOf:aString))//2).
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   735
    ] ifFalse:[ (textAlign == 2 "TaRight") ifTrue:[
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   736
	x := aRect right - (self "container font widthof:" stringWidthOf:aString).
2449
47c5bd490201 fix for TaRight textalign
fm
parents: 2322
diff changeset
   737
"/        y := self "container font ascent" getCharHeight + aPoint y .
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   738
    ] ifFalse:[ (textAlign == 14 "TaCenterBottom") ifTrue:[
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   739
	y := aRect bottom - self getCharHeight "container font ascent".
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   740
	x := aRect left + ((aRect width-(self "container font widthOf:" stringWidthOf:aString))//2).
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   741
    ] ifFalse:[ (textAlign == 10) ifTrue:[
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   742
	x := aRect right - (self "container font widthof:" stringWidthOf:aString).
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   743
	y := aPoint y - (self container font ascent)"aRect bottom - self getCharHeight".
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   744
    ]]]]].
2565
961d9cb4a31c changed #displayString:at:in:options:adx:
fm
parents: 2552
diff changeset
   745
961d9cb4a31c changed #displayString:at:in:options:adx:
fm
parents: 2552
diff changeset
   746
"/aString = '3' ifTrue:[
961d9cb4a31c changed #displayString:at:in:options:adx:
fm
parents: 2552
diff changeset
   747
"/self halt.
2275
6c2f8ba6b301 changed #displayString:at:in:options:adx:
fm
parents: 2274
diff changeset
   748
"/    Transcript showCR: 'Original Pos: ', aPoint x printString, '@', aPoint y printString,
6c2f8ba6b301 changed #displayString:at:in:options:adx:
fm
parents: 2274
diff changeset
   749
"/                       ' Pos: ', x printString, '@', y printString,
2565
961d9cb4a31c changed #displayString:at:in:options:adx:
fm
parents: 2552
diff changeset
   750
"/                       ' Text: ', aString,
961d9cb4a31c changed #displayString:at:in:options:adx:
fm
parents: 2552
diff changeset
   751
"/                       ' Align: ', textAlign printString.
961d9cb4a31c changed #displayString:at:in:options:adx:
fm
parents: 2552
diff changeset
   752
"/    self displayString:aString at:(aPoint x@ aPoint y).
961d9cb4a31c changed #displayString:at:in:options:adx:
fm
parents: 2552
diff changeset
   753
"/].
961d9cb4a31c changed #displayString:at:in:options:adx:
fm
parents: 2552
diff changeset
   754
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   755
    self displayString:aString at:(x@y).
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   756
2275
6c2f8ba6b301 changed #displayString:at:in:options:adx:
fm
parents: 2274
diff changeset
   757
    "Modified: / 14-12-2006 / 12:29:13 / User"
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   758
!
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   759
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   760
displayStringLines:anIndexedCollection from:startIndex to:endIndex in:aRectangle
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   761
    "Private - display Strings in anIndexedCollection starting at startIndex and
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   762
     ending at endIndex, clipped within the bounds of aRectangle."
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   763
3315
c51703ef04b6 Access graphicsDevice via method send instead of instVar access
Stefan Vogel <sv@exept.de>
parents: 3287
diff changeset
   764
    |charHeight ascent|
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   765
2147
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   766
    charHeight := self getCharHeight.
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   767
    ascent := self font ascentOn:self device.
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   768
    startIndex to:endIndex do:[:i |
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   769
	|lineToPrint|
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   770
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   771
	lineToPrint := (anIndexedCollection at:i).
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   772
	self graphicsDevice
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   773
	    displayString:lineToPrint
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   774
	    from:1
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   775
	    to:lineToPrint size
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   776
	    x:aRectangle left
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   777
	    y:(aRectangle top + ((i - startIndex) * charHeight))
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   778
	    in:nil
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   779
	    with:self gcId
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   780
	    opaque:false
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   781
	    fontAscent:ascent.
2147
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   782
    ].
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   783
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   784
    "/    region := self setClipRect: aRectangle.
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   785
    "/    ta := self getTextAlign.
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   786
    "/    self setTextAlign: TaTop.
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   787
    "/    startIndex to: endIndex do: [ :i |
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   788
    "/        self
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   789
    "/            displayText: ( anIndexedCollection at: i )
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   790
    "/            at: aRectangle left @ ( aRectangle top + ( i - startIndex * charHeight ) ) ].
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   791
    "/    self setTextAlign: ta.
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   792
    "/    self destroyRegion: region
2147
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   793
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   794
    "Created: / 03-08-2006 / 11:37:52 / fm"
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   795
    "Modified: / 03-08-2006 / 12:38:43 / fm"
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   796
    "Modified: / 10-10-2006 / 18:14:36 / cg"
2147
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   797
!
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   798
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   799
displayStringLines:anIndexedCollection in:aRectangle
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   800
    "Private - display anIndexedCollection of Strings clipped within
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   801
     the bounds of aRectangle."
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   802
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   803
    self
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   804
	displayStringLines:anIndexedCollection
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   805
	from:1
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   806
	to:anIndexedCollection size
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   807
	in:aRectangle
2147
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   808
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   809
    "Created: / 03-08-2006 / 16:03:07 / fm"
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   810
    "Modified: / 10-10-2006 / 18:14:40 / cg"
2147
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   811
!
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   812
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   813
displayText: aString at: aPoint
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   814
    self displayString:aString x:aPoint x y:aPoint y
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   815
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   816
    "Modified: / 16-04-2007 / 12:44:43 / cg"
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   817
!
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   818
2247
b0a3ddb53d25 Simple Windows Stream Printing Support
fm
parents: 2237
diff changeset
   819
linesPerPageFor: aRectangle
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   820
    |marginsRect charHeight|
2247
b0a3ddb53d25 Simple Windows Stream Printing Support
fm
parents: 2237
diff changeset
   821
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   822
    marginsRect := aRectangle isNil
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   823
	ifTrue:[self marginsRectangleFor: nil]
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   824
	ifFalse:[aRectangle].
2247
b0a3ddb53d25 Simple Windows Stream Printing Support
fm
parents: 2237
diff changeset
   825
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   826
    charHeight := self getCharHeight.
2247
b0a3ddb53d25 Simple Windows Stream Printing Support
fm
parents: 2237
diff changeset
   827
    ^(marginsRect bottom - marginsRect top) // charHeight
b0a3ddb53d25 Simple Windows Stream Printing Support
fm
parents: 2237
diff changeset
   828
b0a3ddb53d25 Simple Windows Stream Printing Support
fm
parents: 2237
diff changeset
   829
    "Created: / 12-10-2006 / 11:52:57 / User"
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   830
    "Modified: / 16-04-2007 / 12:44:56 / cg"
2247
b0a3ddb53d25 Simple Windows Stream Printing Support
fm
parents: 2237
diff changeset
   831
!
b0a3ddb53d25 Simple Windows Stream Printing Support
fm
parents: 2237
diff changeset
   832
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   833
marginsRectangleFor:aRectangle
2147
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   834
    "Private - Answer a Rectangle defining margins based on aRectangle.
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   835
     Units for aRectangle are in inches, returned margins rectangle is
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   836
     in device units (pixels)."
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   837
2147
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   838
    |left top right bottom pixelsPerInchX pixelsPerInchY horzRes vertRes inset rectangle|
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   839
2147
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   840
    pixelsPerInchX := self pixelsPerInchOfScreenWidth.
2552
071be7d5a9b5 changed #marginsRectangleFor:
Claus Gittinger <cg@exept.de>
parents: 2449
diff changeset
   841
    pixelsPerInchX == 0 ifTrue:[self halt:'invalid definitions for screen resolution'].
2147
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   842
    pixelsPerInchY := self pixelsPerInchOfScreenHeight.
2552
071be7d5a9b5 changed #marginsRectangleFor:
Claus Gittinger <cg@exept.de>
parents: 2449
diff changeset
   843
    pixelsPerInchY == 0 ifTrue:[self halt:'invalid definitions for screen resolution'].
071be7d5a9b5 changed #marginsRectangleFor:
Claus Gittinger <cg@exept.de>
parents: 2449
diff changeset
   844
2147
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   845
    aRectangle isNil ifTrue:[
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   846
	horzRes := self printerWidthArea.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   847
	vertRes := self printerHeightArea.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   848
	inset := self class defaultMargins.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   849
	left := (inset x * pixelsPerInchX) asInteger.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   850
	top := (inset y * pixelsPerInchY) asInteger.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   851
	right := horzRes - (inset x * pixelsPerInchX) asInteger.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   852
	bottom := vertRes - (inset y * pixelsPerInchY) asInteger
2147
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   853
    ] ifFalse:[
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   854
	left := (aRectangle left * pixelsPerInchX) asInteger.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   855
	top := (aRectangle top * pixelsPerInchY) asInteger.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   856
	right := (aRectangle right * pixelsPerInchX) asInteger.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   857
	bottom := (aRectangle bottom * pixelsPerInchY) asInteger
2147
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   858
    ].
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   859
    rectangle := left @ top corner:right @ bottom.
2147
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   860
    ^ rectangle
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   861
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   862
    "Created: / 27-07-2006 / 18:22:57 / fm"
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   863
    "Modified: / 04-08-2006 / 13:39:45 / fm"
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   864
    "Modified: / 16-04-2007 / 11:57:21 / cg"
2147
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   865
!
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   866
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   867
printPage:pageIndex in:aRectangle lines:lines headerLines:headerLines linesPerPage:linesPerPage
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   868
    "Private - print page # pageIndex from lines, assuming
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   869
     the given number of linesPerPage."
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   870
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   871
    |firstLine lastLine l indexString p cHeight rect hLines|
2147
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   872
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   873
    firstLine := (pageIndex - 1) * linesPerPage + 1.
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   874
    lastLine := (firstLine + linesPerPage - 1) min:lines size.
2147
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   875
    rect := aRectangle deepCopy.
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   876
    hLines := headerLines deepCopy.
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   877
    headerLines size > 0 ifTrue:[
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   878
	l := hLines first.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   879
	p := l indexOfSubCollection: "indexOfString:"'#P'.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   880
	p = 0 ifFalse:[
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   881
	    indexString := pageIndex printString , ' '.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   882
	    l := (l copyFrom:1 to:p - 1) , indexString , (l copyFrom:p + 2 to:l size).
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   883
	    hLines at:1 put:l.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   884
	].
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   885
	cHeight := self getCharHeight.
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   886
	rect top:rect top + (hLines size * cHeight).
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   887
    ].
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   888
    self displayStringLines:hLines in:aRectangle.
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   889
    self
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   890
	displayStringLines:lines
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   891
	from:firstLine
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   892
	to:lastLine
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   893
	in:rect.
2147
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   894
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   895
    "Created: / 27-07-2006 / 18:28:00 / fm"
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   896
    "Modified: / 03-08-2006 / 16:03:15 / fm"
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   897
    "Modified: / 10-10-2006 / 18:18:15 / cg"
2274
c0c247557f01 *** empty log message ***
fm
parents: 2273
diff changeset
   898
    "Modified: / 30-11-2006 / 13:34:44 / User"
2147
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   899
!
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   900
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   901
printPage:pageIndex in:aRectangle lines:lines linesPerPage:linesPerPage
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   902
    "Private - print page # pageIndex from lines, assuming
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   903
     the given number of linesPerPage."
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   904
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   905
    |firstLine lastLine|
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   906
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   907
    firstLine := (pageIndex - 1) * linesPerPage + 1.
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   908
    lastLine := (firstLine + linesPerPage - 1) min:lines size.
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   909
    self
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   910
	displayStringLines:lines
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   911
	from:firstLine
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   912
	to:lastLine
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   913
	in:aRectangle
2147
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   914
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   915
    "Created: / 27-07-2006 / 18:24:59 / fm"
10c893aa772a *** empty log message ***
fm
parents: 2146
diff changeset
   916
    "Modified: / 03-08-2006 / 12:47:24 / fm"
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   917
    "Modified: / 10-10-2006 / 18:18:22 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   918
!
8f5996be6907 initial checkin
fm
parents:
diff changeset
   919
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   920
stringWidthOf:aString
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   921
    "Return the width of aString
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   922
     when written using the current font."
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   923
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   924
    ^ self stringWidthOf:aString at:aString size.
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   925
8f5996be6907 initial checkin
fm
parents:
diff changeset
   926
    "Modified: / 03-08-2006 / 10:18:23 / fm"
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   927
    "Modified: / 10-10-2006 / 18:20:08 / cg"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   928
!
8f5996be6907 initial checkin
fm
parents:
diff changeset
   929
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   930
stringWidthOf:aString at:index
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   931
    "Return the width of aString up to index
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   932
     when written using the current font; expand tabs out
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   933
     to 4 spaces for calculations"
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   934
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   935
    self subclassResponsibility
2236
76291d984db9 pretty printing
Claus Gittinger <cg@exept.de>
parents: 2235
diff changeset
   936
2300
4f9a576ecdc6 refactorred OS-independent stuff
Claus Gittinger <cg@exept.de>
parents: 2275
diff changeset
   937
    "Modified: / 16-04-2007 / 12:45:42 / cg"
2272
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   938
!
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   939
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   940
withLineStyle:aSymbol lineWidth:lw paint:paintColor do:aBlock
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   941
    |savStyle savWidth savPaint|
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   942
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   943
    savStyle := self lineStyle.
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   944
    savWidth := self lineWidth.
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   945
    savPaint := self paint.
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   946
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   947
    self lineStyle:aSymbol.
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   948
    self lineWidth:lw.
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   949
    self paint:paintColor.
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   950
    aBlock value.
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   951
    self paint:savPaint.
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   952
    self lineWidth:savWidth.
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   953
    self lineStyle:savStyle.
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   954
64e4bdfc84b9 *** empty log message ***
fm
parents: 2247
diff changeset
   955
    "Created: / 13-09-2006 / 15:38:56 / User"
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   956
! !
8f5996be6907 initial checkin
fm
parents:
diff changeset
   957
8f5996be6907 initial checkin
fm
parents:
diff changeset
   958
!PrinterContext class methodsFor:'documentation'!
8f5996be6907 initial checkin
fm
parents:
diff changeset
   959
8f5996be6907 initial checkin
fm
parents:
diff changeset
   960
version
3709
ae76cdc6787a Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 3315
diff changeset
   961
    ^ '$Header$'
2143
8f5996be6907 initial checkin
fm
parents:
diff changeset
   962
! !
3287
11a9d55d663c class: PrinterContext
Stefan Vogel <sv@exept.de>
parents: 2565
diff changeset
   963