GraphicsContext.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Sat, 26 Nov 2016 21:09:32 +0000
branchjv
changeset 7719 c2f802dd340a
parent 7542 9e125aa140f9
child 7722 1387e5aedc55
permissions -rw-r--r--
XFT: Forbid XFT rendering on bitmaps (depth-1 pixmaps) In theory it could work if XFT would just turn gray into either black or white. But XFT doesn't do it and simply draw nothing without failing in any way. To prevent this silent failures, forbid drawing XFT onto bitmaps (depth-1 pixmaps). After all, the while point of XFT is to use anti-aliased fonts.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
48194c26a46c Initial revision
claus
parents:
diff changeset
     1
"
6
7ee0cfde237d *** empty log message ***
claus
parents: 5
diff changeset
     2
 COPYRIGHT (c) 1992 by Claus Gittinger
71
6a42b2b115f8 *** empty log message ***
claus
parents: 54
diff changeset
     3
	      All Rights Reserved
0
48194c26a46c Initial revision
claus
parents:
diff changeset
     4
48194c26a46c Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
48194c26a46c Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
48194c26a46c Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
48194c26a46c Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
48194c26a46c Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
48194c26a46c Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
48194c26a46c Initial revision
claus
parents:
diff changeset
    11
"
3310
5593d19c3d53 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
    12
"{ Package: 'stx:libview' }"
5593d19c3d53 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
    13
7015
09828e08bc73 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 6535
diff changeset
    14
"{ NameSpace: Smalltalk }"
09828e08bc73 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 6535
diff changeset
    15
0
48194c26a46c Initial revision
claus
parents:
diff changeset
    16
Object subclass:#GraphicsContext
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 726
diff changeset
    17
	instanceVariableNames:'device paint bgPaint function font lineStyle lineWidth joinStyle
4027
3be6ffd7713f characterEncoding stuff
Claus Gittinger <cg@exept.de>
parents: 4025
diff changeset
    18
		capStyle mask maskOrigin transformation clipRect
3be6ffd7713f characterEncoding stuff
Claus Gittinger <cg@exept.de>
parents: 4025
diff changeset
    19
		characterEncoding'
2031
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
    20
	classVariableNames:'White Black DefaultFont DrawingOnClosedDrawableSignal'
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
    21
	poolDictionaries:''
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
    22
	category:'Graphics-Support'
0
48194c26a46c Initial revision
claus
parents:
diff changeset
    23
!
48194c26a46c Initial revision
claus
parents:
diff changeset
    24
1203
49dd13574c7d dont use Black/White when drawing;
Claus Gittinger <cg@exept.de>
parents: 952
diff changeset
    25
!GraphicsContext class methodsFor:'documentation'!
46
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
    26
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
    27
copyright
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
    28
"
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
    29
 COPYRIGHT (c) 1992 by Claus Gittinger
71
6a42b2b115f8 *** empty log message ***
claus
parents: 54
diff changeset
    30
	      All Rights Reserved
46
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
    31
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
    32
 This software is furnished under a license and may be used
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
    33
 only in accordance with the terms of that license and with the
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
    34
 inclusion of the above copyright notice.   This software may not
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
    35
 be provided or otherwise made available to, or used by, any
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
    36
 other person.  No title to or ownership of the software is
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
    37
 hereby transferred.
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
    38
"
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
    39
!
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
    40
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
    41
documentation
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
    42
"
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
    43
    this is an abstract superclass for all kinds of graphic drawables -
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
    44
    both windows and printed pages (i.e. printers) are inheriting from
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
    45
    this class (even drawables not at all associated with any device would do so).
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
    46
76
db983d8d7e53 scaling
claus
parents: 71
diff changeset
    47
    Drawing is done in paint/bgPaint colors, which can be true colors (i.e.
db983d8d7e53 scaling
claus
parents: 71
diff changeset
    48
    directly supported by the underlying hardware) or simulated colors
db983d8d7e53 scaling
claus
parents: 71
diff changeset
    49
    (i.e. dithered colors or images).
db983d8d7e53 scaling
claus
parents: 71
diff changeset
    50
    The paint/bgPaint instance variables are set to the logical colors,
db983d8d7e53 scaling
claus
parents: 71
diff changeset
    51
    device specific drawable may like to keep actual colors in addition.
71
6a42b2b115f8 *** empty log message ***
claus
parents: 54
diff changeset
    52
6a42b2b115f8 *** empty log message ***
claus
parents: 54
diff changeset
    53
    The transformation instance variable is typically nil, for a 1-to-1
6a42b2b115f8 *** empty log message ***
claus
parents: 54
diff changeset
    54
    coordinate mapping (i.e. x/y coordinates are pixels in the drawable).
6a42b2b115f8 *** empty log message ***
claus
parents: 54
diff changeset
    55
    If nonNil, the transformation must be an  instance of WindowingTransformation
6a42b2b115f8 *** empty log message ***
claus
parents: 54
diff changeset
    56
    and offers both a scale-factor and a translation.
6a42b2b115f8 *** empty log message ***
claus
parents: 54
diff changeset
    57
    Also, drawing in metric- or inch-units can be done using transformations.
6a42b2b115f8 *** empty log message ***
claus
parents: 54
diff changeset
    58
    (see instance creation methods of WindowingTransformation, and examples
6a42b2b115f8 *** empty log message ***
claus
parents: 54
diff changeset
    59
     in 'doc/coding').
46
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
    60
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
    61
    All drawing is defined upon a few basic drawing methods, which must be
46
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
    62
    implemented by subclasses (some subclasses also redefine the others for
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
    63
    more performance)
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
    64
611
e0442439a3c6 documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    65
    [Instance variables:]
46
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
    66
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
    67
	paint           <Color>         the paint used for drawing
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
    68
	bgPaint         <Color>         the background used for drawing texts and bitmaps
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
    69
	function        <Symbol>        the drawing function (i.e. #copy, #or, #xor ...)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
    70
					- not all Drawables support every function
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
    71
					(i.e. paper only allows #copy)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
    72
	font            <Font>          the current font to be used for drawing
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
    73
	lineStyle       <Symbol>        the lineStyle (i.e. #solid, #dashed, #doubleDashed)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
    74
	lineWidth       <SmallInteger>  the lineWidth (device dependent, usually pixels)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
    75
	joinStyle       <Symbol>        the style in which lines (in polygons)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
    76
					are joined (i.e. #miter, #bevel, #round)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
    77
	capStyle        <Symbol>        the style in which the last point of a line is drawn
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
    78
					(i.e. #notLast, #butt, #round, #projecting)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
    79
	mask            <Form>          a mask used for drawing
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
    80
					- not all Drawables support it
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
    81
	maskOrigin      <Point>         the origin of the mask relative to
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
    82
					the drawables origin
716
b83fee8ff1b3 moved clipRect up in the hierarchy
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
    83
	transformation
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
    84
			<WindowingTransformation>
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
    85
					controls scale & translation of nonNil
716
b83fee8ff1b3 moved clipRect up in the hierarchy
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
    86
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
    87
	clipRect        <Rectangle>     a clip rectangle (device dep. usually pixels or inches)
716
b83fee8ff1b3 moved clipRect up in the hierarchy
Claus Gittinger <cg@exept.de>
parents: 713
diff changeset
    88
					or nil.
46
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
    89
611
e0442439a3c6 documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    90
    [Class variables:[
e0442439a3c6 documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    91
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
    92
	White           <Color>         cached white color - its needed so often
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
    93
	Black           <Color>         cached black color - its needed so often
46
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
    94
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
    95
	DefaultFont     <Font>          default font to use
46
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
    96
611
e0442439a3c6 documentation
Claus Gittinger <cg@exept.de>
parents: 585
diff changeset
    97
    [author:]
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
    98
	Claus Gittinger
657
Claus Gittinger <cg@exept.de>
parents: 653
diff changeset
    99
Claus Gittinger <cg@exept.de>
parents: 653
diff changeset
   100
    [see also:]
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
   101
	Color Font Form Image
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
   102
	Geometric
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
   103
	DeviceWorkstation
46
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
   104
"
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   105
!
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   106
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   107
examples
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   108
"
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   109
    drawing uses a paint color (which may be a dithered one) which is
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   110
    used like a `pen'.
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   111
    A few drawing operations (opaqueForm and opaqueString drawing)
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   112
    use two colors, the paint and a backgroundPaint. For example,
7344
627026dac7d7 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7289
diff changeset
   113
    normal string drawing (#displayString:...) only draws the font's
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   114
    on-pixels in the current paint, leaving off-pixels unchanged.
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   115
    In contrast, #drawOpaqueString:.. also changes these to the bgPaint color.
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   116
    The bgPaint can be changed with #backgroundPaint: or #paint:on: (which modifies both).
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   117
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   118
    lets try it in a view:
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   119
									[exBegin]
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   120
	|v|
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   121
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   122
	v := View new.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   123
	v openAndWait.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   124
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   125
	v paint:(Color red).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   126
	v displayString:'hello' x:10 y:50
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   127
									[exEnd]
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   128
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   129
    the same using opaque drawing:
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   130
									[exBegin]
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   131
	|v|
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   132
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   133
	v := View new.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   134
	v openAndWait.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   135
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   136
	v paint:(Color red) on:(Color yellow).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   137
	v displayOpaqueString:'hello' x:10 y:50
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   138
									[exEnd]
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   139
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   140
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   141
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   142
    Lines are drawn using the paint color (if solid) or both paint and bgPaint
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   143
    (dashed lines). The look of the line is controlled by joinStyle, capStyle,
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   144
    lineWidth and lineStyle.
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   145
    `lineStyle' can be one of #solid, #dashed, #doubleDashed
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   146
    where: #solid        - is for solid lines, drawn with the current paint color
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   147
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   148
	   #dashed       - for dashed lines, where only the on-dashes are drawn
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   149
			   with the current paint color
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   150
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   151
	   #doubleDashed - dashed lines, draws on-dashes with paint color,
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   152
			   off-dashes with bgPaint
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   153
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   154
    for example:
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   155
									[exBegin]
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   156
	|v|
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   157
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   158
	v := View new.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   159
	v openAndWait.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   160
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   161
	v paint:(Color red) on:(Color blue).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   162
	v displayLineFrom:(10@10) to:(90@90).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   163
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   164
	v lineStyle:#dashed.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   165
	v displayLineFrom:(90@10) to:(10@90).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   166
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   167
	v lineStyle:#doubleDashed.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   168
	v displayRectangle:((5@5) corner:(95@95)).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   169
									[exEnd]
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   170
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   171
    changing the line-width:
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   172
									[exBegin]
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   173
	|v|
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   174
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   175
	v := View new.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   176
	v openAndWait.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   177
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   178
	v paint:(Color red).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   179
	v displayLineFrom:(20@20) to:(80@80).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   180
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   181
	v lineWidth:5.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   182
	v displayLineFrom:(80@20) to:(20@80).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   183
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   184
	v lineWidth:8.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   185
	v displayRectangle:((5@5) corner:(95@95)).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   186
									[exEnd]
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   187
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   188
    with wide lines, the corners (of polygons or rectangles) can be
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   189
    one of the joinStyles: #miter, #bevel, #round. The default is #miter.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   190
									[exBegin]
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   191
	|v|
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   192
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   193
	v := View new extent:200@200.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   194
	v openAndWait.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   195
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   196
	v lineWidth:15.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   197
	v paint:(Color red).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   198
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   199
	v displayRectangle:((65@65) corner:(135@135)).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   200
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   201
	v joinStyle:#bevel.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   202
	v displayRectangle:((45@45) corner:(155@155)).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   203
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   204
	v joinStyle:#round.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   205
	v displayRectangle:((25@25) corner:(175@175)).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   206
									[exEnd]
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   207
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   208
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   209
    the endPoints look is controlled with capStyle;
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   210
    possible values are: #notLast, #butt, #round, #projecting.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   211
    The default is #butt.
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   212
    #notLast is mostly useful when exoring (inverting): it will not draw the
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   213
    endPoint, to allow another line to join the previous line without inverting
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   214
    this point twice. (See the X manual for more info).
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   215
									[exBegin]
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   216
	|v|
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   217
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   218
	v := View new extent:200@200.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   219
	v openAndWait.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   220
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   221
	v lineWidth:15.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   222
	v paint:(Color red).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   223
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   224
	v displayLineFrom:(25@25) to:(175@25).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   225
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   226
	v capStyle:#round.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   227
	v displayLineFrom:(25@55) to:(175@55).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   228
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   229
	v capStyle:#projecting.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   230
	v displayLineFrom:(25@85) to:(175@85).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   231
									[exEnd]
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   232
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   233
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   234
    You can use a bitmap as a point color:
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   235
    (this may be slow on some graphics devices, though)
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   236
									[exBegin]
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   237
	|v|
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   238
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   239
	v := View new extent:200@200.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   240
	v openAndWait.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   241
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   242
	v lineWidth:15.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   243
	v paint:(Image fromFile:'granite_small.tiff').
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   244
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   245
	v displayLineFrom:(25@25) to:(175@25).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   246
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   247
	v capStyle:#round.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   248
	v displayLineFrom:(25@55) to:(175@55).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   249
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   250
	v capStyle:#projecting.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   251
	v displayLineFrom:(25@85) to:(175@85).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   252
									[exEnd]
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   253
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   254
    all views support a translation and scale, so you can draw in another
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   255
    coordinate system:
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   256
									[exBegin]
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   257
	|v|
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   258
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   259
	v := View new extent:200@200.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   260
	v openAndWait.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   261
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   262
	v displayForm:(Image fromFile:'SBrowser.xbm') x:10 y:10.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   263
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   264
	v scale:(2@2); translation:50.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   265
	v displayForm:(Image fromFile:'SBrowser.xbm') x:10 y:10.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   266
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   267
	v scale:(0.5@0.5); translation:0.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   268
	v displayForm:(Image fromFile:'SBrowser.xbm') x:10 y:10.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   269
									[exEnd]
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   270
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   271
    if scaling is on, it is often useful to be able to draw individual
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   272
    things unscaled - this still translates the position, but
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   273
    uses the unscaled font (for example, to draw strings in a graphic):
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   274
									[exBegin]
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   275
	|v|
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   276
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   277
	v := View new extent:200@200.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   278
	v openAndWait.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   279
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   280
	v displayForm:(Image fromFile:'SBrowser.xbm') x:10 y:10.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   281
	v displayString:'hello' x:50 y:40.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   282
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   283
	v scale:(2@4).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   284
	v displayForm:(Image fromFile:'SBrowser.xbm') x:10 y:10.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   285
	v displayUnscaledString:'hello' x:50 y:40.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   286
									[exEnd]
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   287
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   288
    Filled objects are drawin using the #fillXXX methods; for example,
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   289
    displayRectangleXXX draws the outline, while fillRectangleXXX draws a
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   290
    filled one:
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   291
									[exBegin]
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   292
	|v|
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   293
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   294
	v := View new extent:200@200.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   295
	v openAndWait.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   296
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   297
	v displayArcIn:(20@20 corner:50@50) from:0 angle:180.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   298
	v paint:Color yellow.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   299
	v fillArcIn:(120@120 corner:150@150) from:0 angle:180.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   300
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   301
	v paint:Color red.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   302
	v displayCircle:150@50 radius:30.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   303
	v paint:Color blue.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   304
	v fillCircle:50@150 radius:30.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   305
									[exEnd]
619
a46cb2ef56bf examples
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
   306
a46cb2ef56bf examples
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
   307
    polygons:
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   308
									[exBegin]
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   309
	|v poly1 poly2|
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   310
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   311
	poly1 := OrderedCollection new.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   312
	poly1 add:(10 @ 10).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   313
	poly1 add:(100 @ 50).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   314
	poly1 add:(50 @ 50).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   315
	poly1 add:(20 @ 100).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   316
	poly1 add:(10 @ 100).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   317
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   318
	poly2 := poly1 copy.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   319
	poly2 add:(poly2 first).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   320
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   321
	v := View new extent:200@200.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   322
	v openAndWait.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   323
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   324
	v scale:2.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   325
	v paint:Color red.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   326
	v fillPolygon:poly1.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   327
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   328
	v scale:1.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   329
	v paint:Color blue.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   330
	v displayPolygon:poly2.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   331
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   332
	v scale:0.5.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   333
	v paint:Color yellow.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   334
	v fillPolygon:poly1.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   335
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   336
									[exEnd]
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   337
"
46
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
   338
! !
7b331e9012fd *** empty log message ***
claus
parents: 35
diff changeset
   339
1203
49dd13574c7d dont use Black/White when drawing;
Claus Gittinger <cg@exept.de>
parents: 952
diff changeset
   340
!GraphicsContext class methodsFor:'initialization'!
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   341
48194c26a46c Initial revision
claus
parents:
diff changeset
   342
initialize
48194c26a46c Initial revision
claus
parents:
diff changeset
   343
    "setup some defaults - these are usually redefined
48194c26a46c Initial revision
claus
parents:
diff changeset
   344
     during startup."
48194c26a46c Initial revision
claus
parents:
diff changeset
   345
2031
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   346
    DrawingOnClosedDrawableSignal isNil ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   347
	DrawingOnClosedDrawableSignal := Signal new mayProceed:true.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   348
	DrawingOnClosedDrawableSignal nameClass:self message:#drawingOnClosedDrawableSignal.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   349
	DrawingOnClosedDrawableSignal notifierString:'drawing attempt on closed drawable'.
2031
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   350
    ].
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   351
134
claus
parents: 109
diff changeset
   352
    White isNil ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   353
	Color initialize.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   354
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   355
	Display notNil ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   356
	    White := Display whiteColor.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   357
	    Black := Display blackColor.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   358
	] ifFalse:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   359
	    White := Color white.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   360
	    Black := Color black.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   361
	].
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   362
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   363
	Font initialize.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   364
	DefaultFont := Font family:'courier' face:'medium' style:'roman' size:12.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   365
	Display notNil ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   366
	    DefaultFont := DefaultFont onDevice:Display
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   367
	]
134
claus
parents: 109
diff changeset
   368
    ]
2031
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   369
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   370
    "Modified: / 29.1.1998 / 12:56:18 / cg"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   371
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
   372
1203
49dd13574c7d dont use Black/White when drawing;
Claus Gittinger <cg@exept.de>
parents: 952
diff changeset
   373
!GraphicsContext class methodsFor:'instance creation'!
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   374
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   375
new
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   376
    "return a new instance of myself. Redefined to initialize
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   377
     the new thingy"
12
9f0995fac1fa *** empty log message ***
claus
parents: 6
diff changeset
   378
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   379
    ^ self basicNew initialize
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   380
! !
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   381
2031
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   382
!GraphicsContext class methodsFor:'Signal constants'!
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   383
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   384
drawingOnClosedDrawableSignal
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   385
    "return the signal which is raised, if drawing is attempted
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   386
     on a closed drawable.
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   387
     This is especially useful, if a forked thread animates
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   388
     a view in the background, and is not properly synchronized
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   389
     with the window thread - i.e. the window gets closed by the user,
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   390
     and the background process continues to draw.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   391
     In this case, the background thread should handle this signal
2031
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   392
     and terminate itself in the handler."
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   393
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   394
    ^ DrawingOnClosedDrawableSignal
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   395
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   396
    "demonstration1: (error if closed by the windowManager):
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   397
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   398
     |v|
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   399
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   400
     v := StandardSystemView new openAndWait.
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   401
     [
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   402
	[true] whileTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   403
	    |x y|
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   404
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   405
	    x := Random nextIntegerBetween:0 and:(v width).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   406
	    y := Random nextIntegerBetween:0 and:(v height).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   407
	    v displayString:'hello' x:x y:y.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   408
	    Delay waitForSeconds:0.5.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   409
	]
2031
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   410
     ] fork.
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   411
    "
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   412
    "demonstration2: (no error if closed by the windowManager):
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   413
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   414
     |v|
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   415
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   416
     v := StandardSystemView new openAndWait.
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   417
     [
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   418
	v class drawingOnClosedDrawableSignal handle:[:ex |
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   419
	    ex return
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   420
	] do:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   421
	    [true] whileTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   422
		|x y|
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   423
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   424
		x := Random nextIntegerBetween:0 and:(v width).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   425
		y := Random nextIntegerBetween:0 and:(v height).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   426
		v displayString:'hello' x:x y:y.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   427
		Delay waitForSeconds:0.5.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   428
	    ]
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   429
	]
2031
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   430
     ] fork.
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   431
    "
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   432
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   433
    "Created: / 29.1.1998 / 13:10:41 / cg"
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   434
    "Modified: / 29.1.1998 / 13:11:14 / cg"
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   435
! !
d369d38213cf dont use #error when drawing on a closed drawable;
Claus Gittinger <cg@exept.de>
parents: 2017
diff changeset
   436
5032
93bc49567a43 category change
Claus Gittinger <cg@exept.de>
parents: 4984
diff changeset
   437
!GraphicsContext class methodsFor:'accessing-defaults'!
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   438
48194c26a46c Initial revision
claus
parents:
diff changeset
   439
defaultFont
12
9f0995fac1fa *** empty log message ***
claus
parents: 6
diff changeset
   440
    "get the default font used for drawing"
9f0995fac1fa *** empty log message ***
claus
parents: 6
diff changeset
   441
71
6a42b2b115f8 *** empty log message ***
claus
parents: 54
diff changeset
   442
    DefaultFont isNil ifTrue:[
6a42b2b115f8 *** empty log message ***
claus
parents: 54
diff changeset
   443
	DefaultFont := Font family:'courier' face:'medium' style:'roman' size:12
6a42b2b115f8 *** empty log message ***
claus
parents: 54
diff changeset
   444
    ].
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   445
    ^ DefaultFont
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   446
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   447
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   448
defaultFont:aFont
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   449
    "set the default font used for drawing"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   450
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   451
    DefaultFont := aFont
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   452
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
   453
1203
49dd13574c7d dont use Black/White when drawing;
Claus Gittinger <cg@exept.de>
parents: 952
diff changeset
   454
!GraphicsContext class methodsFor:'constants'!
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   455
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   456
capButt
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   457
    "return a constant to specify butt cap"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   458
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   459
    ^ #butt
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   460
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   461
48194c26a46c Initial revision
claus
parents:
diff changeset
   462
capNotLast
48194c26a46c Initial revision
claus
parents:
diff changeset
   463
    "return a constant to specify not-last cap"
48194c26a46c Initial revision
claus
parents:
diff changeset
   464
48194c26a46c Initial revision
claus
parents:
diff changeset
   465
    ^ #notLast
48194c26a46c Initial revision
claus
parents:
diff changeset
   466
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   467
48194c26a46c Initial revision
claus
parents:
diff changeset
   468
capProjecting
48194c26a46c Initial revision
claus
parents:
diff changeset
   469
    "return a constant to specify projecting cap"
48194c26a46c Initial revision
claus
parents:
diff changeset
   470
48194c26a46c Initial revision
claus
parents:
diff changeset
   471
    ^ #projecting
48194c26a46c Initial revision
claus
parents:
diff changeset
   472
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   473
48194c26a46c Initial revision
claus
parents:
diff changeset
   474
capRound
48194c26a46c Initial revision
claus
parents:
diff changeset
   475
    "return a constant to specify round cap"
48194c26a46c Initial revision
claus
parents:
diff changeset
   476
48194c26a46c Initial revision
claus
parents:
diff changeset
   477
    ^ #round
48194c26a46c Initial revision
claus
parents:
diff changeset
   478
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   479
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   480
joinBevel
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   481
    "return a constant to specify bevel join"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   482
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   483
    ^ #bevel
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   484
!
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   485
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   486
joinMiter
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   487
    "return a constant to specify miter join"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   488
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   489
    ^ #miter
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   490
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   491
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   492
joinRound
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   493
    "return a constant to specify round join"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   494
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   495
    ^ #round
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   496
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
   497
3880
c4c8268a2d9f method category rename
Claus Gittinger <cg@exept.de>
parents: 3733
diff changeset
   498
!GraphicsContext methodsFor:'Compatibility-ST80'!
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   499
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   500
displayArc:origin radius:radius from:startAngle angle:angle
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   501
    "draw an arc around a point"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   502
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   503
    self
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
   504
	displayArcX:(origin x - radius)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
   505
		  y:(origin y - radius)
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   506
	      width:(radius * 2)
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
   507
	     height:(radius * 2)
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   508
	       from:startAngle
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
   509
	      angle:angle
653
0ad3de022f8b fill/drawArc..w:h:.. renamed to ...width:height:...
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
   510
0ad3de022f8b fill/drawArc..w:h:.. renamed to ...width:height:...
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
   511
    "Modified: 8.5.1996 / 08:34:43 / cg"
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   512
!
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   513
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
   514
displayArcBoundedBy:boundingBox startAngle:startAngle sweepAngle:sweepAngle
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   515
   "draw an arc/circle/ellipse - ST-80 compatibility"
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
   516
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
   517
   ^ self displayArcX:(boundingBox left)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
   518
		    y:(boundingBox top)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
   519
		width:(boundingBox width)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
   520
	       height:(boundingBox height)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
   521
		 from:startAngle
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
   522
		angle:sweepAngle
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
   523
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
   524
    "Created: / 14.11.1997 / 21:04:19 / cg"
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
   525
!
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
   526
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   527
displayArcBoundedBy:boundingBox startAngle:startAngle sweepAngle:sweepAngle at:origin
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   528
   "draw an arc/circle/ellipse - ST-80 compatibility"
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   529
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   530
   ^ self displayArcX:(boundingBox left + origin x)
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   531
		    y:(boundingBox top + origin y)
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   532
		width:(boundingBox width)
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   533
	       height:(boundingBox height)
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   534
		 from:startAngle
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   535
		angle:sweepAngle
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   536
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   537
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   538
displayLineFrom:startPoint to:endPoint translateBy:anOffset
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   539
    "draw a line - ST-80 compatibility"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   540
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   541
    self displayLineFrom:(startPoint + anOffset)
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   542
		      to:(endPoint + anOffset)
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   543
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   544
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   545
displayPolyline:aPolygon
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   546
    "draw a polygon - ST-80 compatibility"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   547
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   548
    ^ self displayPolygon:aPolygon
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   549
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   550
4379
02ac555f6b0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4377
diff changeset
   551
displayRectangularBorder:aRectangle
02ac555f6b0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4377
diff changeset
   552
    "draw a rectangle - ST-80 compatibility"
02ac555f6b0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4377
diff changeset
   553
02ac555f6b0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4377
diff changeset
   554
    self displayRectangle:aRectangle
02ac555f6b0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4377
diff changeset
   555
!
02ac555f6b0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4377
diff changeset
   556
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   557
displayRectangularBorder:aRectangle at:aPoint
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   558
    "draw a rectangle - ST-80 compatibility"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   559
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   560
    self displayRectangle:(aRectangle translateBy:aPoint)
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   561
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   562
1280
a2a81377d894 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1203
diff changeset
   563
displayWedgeBoundedBy:boundingBox startAngle:startAngle sweepAngle:sweepAngle
a2a81377d894 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1203
diff changeset
   564
   "fill an arc/circle/ellipse - ST-80 compatibility"
a2a81377d894 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1203
diff changeset
   565
a2a81377d894 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1203
diff changeset
   566
   ^ self fillArcX:(boundingBox left)
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
   567
		 y:(boundingBox top)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
   568
	     width:(boundingBox width)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
   569
	    height:(boundingBox height)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
   570
	      from:startAngle
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
   571
	     angle:sweepAngle
1280
a2a81377d894 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1203
diff changeset
   572
a2a81377d894 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1203
diff changeset
   573
    "Created: 27.1.1997 / 15:50:14 / cg"
a2a81377d894 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1203
diff changeset
   574
!
a2a81377d894 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1203
diff changeset
   575
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   576
displayWedgeBoundedBy:boundingBox startAngle:startAngle sweepAngle:sweepAngle at:origin
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   577
   "fill an arc/circle/ellipse - ST-80 compatibility"
2
b35336ab0de3 *** empty log message ***
claus
parents: 0
diff changeset
   578
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   579
   ^ self fillArcX:(boundingBox left + origin x)
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   580
		 y:(boundingBox top + origin y)
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   581
	     width:(boundingBox width)
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   582
	    height:(boundingBox height)
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   583
	      from:startAngle
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   584
	     angle:sweepAngle
2807
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   585
!
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   586
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   587
findFont:aFontDescription
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   588
    "given a fontDescription, return a device font for it
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   589
     on my device."
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   590
2827
4f30d3aa96e5 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   591
    ^ aFontDescription onDevice:device
2807
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   592
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   593
    "Modified: 28.5.1996 / 20:22:29 / cg"
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   594
!
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   595
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   596
phase
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   597
    "return the origin within the mask (used to draw with patterns).
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   598
     This is an alias for ST/X's #maskOrigin"
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   599
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   600
    ^ self maskOrigin
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   601
!
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   602
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   603
phase:aPoint
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   604
    "set the origin within the mask (used to draw with patterns).
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   605
     This is an alias for ST/X's #maskOrigin:"
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   606
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   607
    ^ self maskOrigin:aPoint
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   608
!
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   609
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   610
setDevicePattern:aColorOrMask
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   611
    "ST/X can paint in any color or image"
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   612
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   613
    self paint:aColorOrMask
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   614
!
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   615
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   616
tilePhase
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   617
    "return the origin within the mask (used to draw with patterns).
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   618
     This is an alias for ST/X's #maskOrigin"
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   619
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   620
    ^ self maskOrigin
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   621
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   622
    "Created: 4.6.1996 / 15:26:39 / cg"
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   623
!
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   624
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   625
tilePhase:aPoint
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   626
    "set the origin within the mask (used to draw with patterns).
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   627
     This is an alias for ST/X's #maskOrigin"
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   628
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   629
    ^ self maskOrigin:aPoint
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   630
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   631
    "Created: 4.6.1996 / 15:26:49 / cg"
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   632
!
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   633
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   634
widthOfString:aString
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   635
    "given a string, return its width in pixels if
7240
a89267cf99b4 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 7015
diff changeset
   636
     drawn on the receiver's device."
2807
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   637
2827
4f30d3aa96e5 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   638
    ^ (font onDevice:device) widthOf:aString
2807
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   639
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   640
    "Modified: 28.5.1996 / 20:22:22 / cg"
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   641
!
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   642
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   643
widthOfString:aString from:start to:stop
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   644
    "given a string, return the width in pixels if
7240
a89267cf99b4 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 7015
diff changeset
   645
     a substring is drawn on the receiver's device."
2807
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   646
2827
4f30d3aa96e5 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   647
    ^ (font onDevice:device) widthOf:aString from:start to:stop
2807
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   648
d65200e6a0d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2806
diff changeset
   649
    "Modified: 28.5.1996 / 20:22:18 / cg"
2
b35336ab0de3 *** empty log message ***
claus
parents: 0
diff changeset
   650
! !
b35336ab0de3 *** empty log message ***
claus
parents: 0
diff changeset
   651
3880
c4c8268a2d9f method category rename
Claus Gittinger <cg@exept.de>
parents: 3733
diff changeset
   652
!GraphicsContext methodsFor:'Compatibility-Squeak'!
2806
3dcf15761c17 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2783
diff changeset
   653
2938
898d40365e5f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2827
diff changeset
   654
fill:aRectangle fillColor:aColor
898d40365e5f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2827
diff changeset
   655
    "fill a rectangle with the given color color"
898d40365e5f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2827
diff changeset
   656
898d40365e5f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2827
diff changeset
   657
    |savedPaint|
898d40365e5f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2827
diff changeset
   658
898d40365e5f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2827
diff changeset
   659
    savedPaint := paint.
898d40365e5f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2827
diff changeset
   660
    self paint:aColor.
898d40365e5f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2827
diff changeset
   661
    self fillRectangle:aRectangle.
898d40365e5f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2827
diff changeset
   662
    self paint:savedPaint
898d40365e5f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2827
diff changeset
   663
!
898d40365e5f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2827
diff changeset
   664
3310
5593d19c3d53 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   665
fillRectangle:aRectangle color:aColor
5593d19c3d53 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   666
    "fill a rectangle with the given paint color"
5593d19c3d53 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   667
5593d19c3d53 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   668
    |oldPaint|
5593d19c3d53 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   669
5593d19c3d53 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   670
    oldPaint := paint.
5593d19c3d53 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   671
    self paint:aColor.
5593d19c3d53 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   672
    self fillRectangle:aRectangle.
5593d19c3d53 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   673
    self paint:oldPaint.
2806
3dcf15761c17 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2783
diff changeset
   674
! !
3dcf15761c17 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2783
diff changeset
   675
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   676
!GraphicsContext methodsFor:'accessing'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   677
48194c26a46c Initial revision
claus
parents:
diff changeset
   678
backgroundPaint
48194c26a46c Initial revision
claus
parents:
diff changeset
   679
    "return the background paint color.
48194c26a46c Initial revision
claus
parents:
diff changeset
   680
     (used for opaqueForms and opaqueStrings)"
48194c26a46c Initial revision
claus
parents:
diff changeset
   681
48194c26a46c Initial revision
claus
parents:
diff changeset
   682
    ^ bgPaint
48194c26a46c Initial revision
claus
parents:
diff changeset
   683
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   684
48194c26a46c Initial revision
claus
parents:
diff changeset
   685
backgroundPaint:aColor
48194c26a46c Initial revision
claus
parents:
diff changeset
   686
    "set the background painting color (which is used for
48194c26a46c Initial revision
claus
parents:
diff changeset
   687
     opaqueForms and opaqueStrings). aColor can be a dithered one."
48194c26a46c Initial revision
claus
parents:
diff changeset
   688
678
a0e9b66778d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 671
diff changeset
   689
    bgPaint := aColor
a0e9b66778d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 671
diff changeset
   690
a0e9b66778d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 671
diff changeset
   691
    "Modified: 12.5.1996 / 22:25:17 / cg"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   692
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   693
7503
bdb0ef0d889a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7477
diff changeset
   694
basicFont
bdb0ef0d889a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7477
diff changeset
   695
    "return the font for drawing"
bdb0ef0d889a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7477
diff changeset
   696
bdb0ef0d889a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7477
diff changeset
   697
    ^ font
bdb0ef0d889a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7477
diff changeset
   698
bdb0ef0d889a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7477
diff changeset
   699
    "Created: 12.5.1996 / 11:17:59 / cg"
bdb0ef0d889a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7477
diff changeset
   700
!
bdb0ef0d889a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7477
diff changeset
   701
6272
406862df2374 class: GraphicsContext
Stefan Vogel <sv@exept.de>
parents: 6268
diff changeset
   702
blackColor
7463
48202ec4ce92 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7457
diff changeset
   703
    "return the black color on this device.
48202ec4ce92 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7457
diff changeset
   704
     This is the same as 'Color black onDevice:self device', but much faster."
48202ec4ce92 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7457
diff changeset
   705
6272
406862df2374 class: GraphicsContext
Stefan Vogel <sv@exept.de>
parents: 6268
diff changeset
   706
    ^ device blackColor
406862df2374 class: GraphicsContext
Stefan Vogel <sv@exept.de>
parents: 6268
diff changeset
   707
!
406862df2374 class: GraphicsContext
Stefan Vogel <sv@exept.de>
parents: 6268
diff changeset
   708
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   709
capStyle
4377
d71b81b9797f comments
Claus Gittinger <cg@exept.de>
parents: 4215
diff changeset
   710
    "return the current cap-style for line-drawing.
d71b81b9797f comments
Claus Gittinger <cg@exept.de>
parents: 4215
diff changeset
   711
     possible styles are: #notLast, #butt, #round, #projecting"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   712
48194c26a46c Initial revision
claus
parents:
diff changeset
   713
    ^ capStyle
48194c26a46c Initial revision
claus
parents:
diff changeset
   714
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   715
48194c26a46c Initial revision
claus
parents:
diff changeset
   716
capStyle:aStyleSymbol
48194c26a46c Initial revision
claus
parents:
diff changeset
   717
    "set the cap-style for line-drawing;
48194c26a46c Initial revision
claus
parents:
diff changeset
   718
     possible styles are: #notLast, #butt, #round, #projecting"
48194c26a46c Initial revision
claus
parents:
diff changeset
   719
678
a0e9b66778d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 671
diff changeset
   720
    aStyleSymbol isNil ifTrue:[
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
   721
	capStyle := #butt
678
a0e9b66778d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 671
diff changeset
   722
    ] ifFalse:[
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
   723
	capStyle := aStyleSymbol
678
a0e9b66778d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 671
diff changeset
   724
    ]
a0e9b66778d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 671
diff changeset
   725
a0e9b66778d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 671
diff changeset
   726
    "Modified: 12.5.1996 / 22:24:30 / cg"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   727
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   728
4071
73f2f46b75d4 characterEncoding stuff moved
Claus Gittinger <cg@exept.de>
parents: 4056
diff changeset
   729
characterEncoding
73f2f46b75d4 characterEncoding stuff moved
Claus Gittinger <cg@exept.de>
parents: 4056
diff changeset
   730
    "returns a symbol describing how the contents is encoded internally.
7289
0d69fc01daba #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7240
diff changeset
   731
     This is now obsolete, as we are always using unicode internally.
4071
73f2f46b75d4 characterEncoding stuff moved
Claus Gittinger <cg@exept.de>
parents: 4056
diff changeset
   732
     (encoding is something like #'iso8859-5' #euc, #sjis, #jis7, #gb, #big5 or #ksc)"
73f2f46b75d4 characterEncoding stuff moved
Claus Gittinger <cg@exept.de>
parents: 4056
diff changeset
   733
73f2f46b75d4 characterEncoding stuff moved
Claus Gittinger <cg@exept.de>
parents: 4056
diff changeset
   734
    ^ characterEncoding
73f2f46b75d4 characterEncoding stuff moved
Claus Gittinger <cg@exept.de>
parents: 4056
diff changeset
   735
!
73f2f46b75d4 characterEncoding stuff moved
Claus Gittinger <cg@exept.de>
parents: 4056
diff changeset
   736
73f2f46b75d4 characterEncoding stuff moved
Claus Gittinger <cg@exept.de>
parents: 4056
diff changeset
   737
characterEncoding:encodingArg
73f2f46b75d4 characterEncoding stuff moved
Claus Gittinger <cg@exept.de>
parents: 4056
diff changeset
   738
    "define how the contents is encoded internally.
73f2f46b75d4 characterEncoding stuff moved
Claus Gittinger <cg@exept.de>
parents: 4056
diff changeset
   739
     This should normally never be required, as ST/X now assumes
73f2f46b75d4 characterEncoding stuff moved
Claus Gittinger <cg@exept.de>
parents: 4056
diff changeset
   740
     unicode (of which iso8859-1 is a subset) encoding.
73f2f46b75d4 characterEncoding stuff moved
Claus Gittinger <cg@exept.de>
parents: 4056
diff changeset
   741
     The possibility to change the characterEncoding is provided as
73f2f46b75d4 characterEncoding stuff moved
Claus Gittinger <cg@exept.de>
parents: 4056
diff changeset
   742
     a backward compatibility hook for programs which want to use
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   743
     another encoding internally.
7289
0d69fc01daba #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7240
diff changeset
   744
     One such view is the CharacterSetView,
4071
73f2f46b75d4 characterEncoding stuff moved
Claus Gittinger <cg@exept.de>
parents: 4056
diff changeset
   745
     which wants to show character as they are actually present in a font."
73f2f46b75d4 characterEncoding stuff moved
Claus Gittinger <cg@exept.de>
parents: 4056
diff changeset
   746
73f2f46b75d4 characterEncoding stuff moved
Claus Gittinger <cg@exept.de>
parents: 4056
diff changeset
   747
    |encodingSymOrNil|
73f2f46b75d4 characterEncoding stuff moved
Claus Gittinger <cg@exept.de>
parents: 4056
diff changeset
   748
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   749
    encodingSymOrNil := encodingArg isNil
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   750
			    ifTrue:[#'iso10646-1' "unicode"]
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   751
			    ifFalse:[encodingArg asSymbol].
4071
73f2f46b75d4 characterEncoding stuff moved
Claus Gittinger <cg@exept.de>
parents: 4056
diff changeset
   752
    characterEncoding ~~ encodingSymOrNil ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   753
	characterEncoding := encodingSymOrNil.
4071
73f2f46b75d4 characterEncoding stuff moved
Claus Gittinger <cg@exept.de>
parents: 4056
diff changeset
   754
    ].
5841
fdcb897dbcc5 comment: #characterEncoding:
Claus Gittinger <cg@exept.de>
parents: 5780
diff changeset
   755
fdcb897dbcc5 comment: #characterEncoding:
Claus Gittinger <cg@exept.de>
parents: 5780
diff changeset
   756
    "Modified (comment): / 25-01-2012 / 00:29:37 / cg"
4071
73f2f46b75d4 characterEncoding stuff moved
Claus Gittinger <cg@exept.de>
parents: 4056
diff changeset
   757
!
73f2f46b75d4 characterEncoding stuff moved
Claus Gittinger <cg@exept.de>
parents: 4056
diff changeset
   758
76
db983d8d7e53 scaling
claus
parents: 71
diff changeset
   759
clippingBounds
7015
09828e08bc73 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 6535
diff changeset
   760
    "return the clip-rectangle for drawing (in logical coordinates).
719
62f1217f0084 prepare for separation of the view hierarchy; moved clipStuff up into here
Claus Gittinger <cg@exept.de>
parents: 717
diff changeset
   761
     If there is currently no active clip, return the underlying
6216
3807505561bf class: GraphicsContext
Stefan Vogel <sv@exept.de>
parents: 6173
diff changeset
   762
     medium (i.e. device) bounds. Added for ST-80 compatibility."
719
62f1217f0084 prepare for separation of the view hierarchy; moved clipStuff up into here
Claus Gittinger <cg@exept.de>
parents: 717
diff changeset
   763
62f1217f0084 prepare for separation of the view hierarchy; moved clipStuff up into here
Claus Gittinger <cg@exept.de>
parents: 717
diff changeset
   764
    |rect|
76
db983d8d7e53 scaling
claus
parents: 71
diff changeset
   765
719
62f1217f0084 prepare for separation of the view hierarchy; moved clipStuff up into here
Claus Gittinger <cg@exept.de>
parents: 717
diff changeset
   766
    clipRect isNil ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   767
	rect := 0@0 extent:(self medium extent).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   768
	transformation notNil ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   769
	    rect := transformation applyInverseTo:rect.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   770
	].
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   771
	^ rect
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   772
    ].
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   773
    transformation notNil ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   774
	^ transformation applyInverseTo:clipRect.
719
62f1217f0084 prepare for separation of the view hierarchy; moved clipStuff up into here
Claus Gittinger <cg@exept.de>
parents: 717
diff changeset
   775
    ].
62f1217f0084 prepare for separation of the view hierarchy; moved clipStuff up into here
Claus Gittinger <cg@exept.de>
parents: 717
diff changeset
   776
    ^ clipRect
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   777
719
62f1217f0084 prepare for separation of the view hierarchy; moved clipStuff up into here
Claus Gittinger <cg@exept.de>
parents: 717
diff changeset
   778
    "Modified: 28.5.1996 / 14:05:15 / cg"
62f1217f0084 prepare for separation of the view hierarchy; moved clipStuff up into here
Claus Gittinger <cg@exept.de>
parents: 717
diff changeset
   779
!
62f1217f0084 prepare for separation of the view hierarchy; moved clipStuff up into here
Claus Gittinger <cg@exept.de>
parents: 717
diff changeset
   780
6216
3807505561bf class: GraphicsContext
Stefan Vogel <sv@exept.de>
parents: 6173
diff changeset
   781
clippingBounds:aRectangleOrNil
719
62f1217f0084 prepare for separation of the view hierarchy; moved clipStuff up into here
Claus Gittinger <cg@exept.de>
parents: 717
diff changeset
   782
    "set the clipping rectangle for drawing (in logical coordinates);
62f1217f0084 prepare for separation of the view hierarchy; moved clipStuff up into here
Claus Gittinger <cg@exept.de>
parents: 717
diff changeset
   783
     a nil argument turn off clipping (i.e. whole view is drawable)"
62f1217f0084 prepare for separation of the view hierarchy; moved clipStuff up into here
Claus Gittinger <cg@exept.de>
parents: 717
diff changeset
   784
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   785
    (aRectangleOrNil notNil and:[transformation notNil]) ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   786
	clipRect := transformation applyTo:aRectangleOrNil.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   787
    ] ifFalse:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   788
	clipRect := aRectangleOrNil
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   789
    ].
719
62f1217f0084 prepare for separation of the view hierarchy; moved clipStuff up into here
Claus Gittinger <cg@exept.de>
parents: 717
diff changeset
   790
62f1217f0084 prepare for separation of the view hierarchy; moved clipStuff up into here
Claus Gittinger <cg@exept.de>
parents: 717
diff changeset
   791
    "Modified: 22.5.1996 / 13:12:07 / cg"
62f1217f0084 prepare for separation of the view hierarchy; moved clipStuff up into here
Claus Gittinger <cg@exept.de>
parents: 717
diff changeset
   792
    "Created: 28.5.1996 / 14:09:27 / cg"
76
db983d8d7e53 scaling
claus
parents: 71
diff changeset
   793
!
db983d8d7e53 scaling
claus
parents: 71
diff changeset
   794
6216
3807505561bf class: GraphicsContext
Stefan Vogel <sv@exept.de>
parents: 6173
diff changeset
   795
clippingBoundsOrNil
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   796
    "return the clipping bounds (a Rectangle) for drawing in logical coordinates, nil if there is none."
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   797
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   798
    clipRect isNil ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   799
	^ nil
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   800
    ].
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   801
    transformation notNil ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   802
	^ transformation applyInverseTo:clipRect.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   803
    ].
6216
3807505561bf class: GraphicsContext
Stefan Vogel <sv@exept.de>
parents: 6173
diff changeset
   804
    ^ clipRect
3807505561bf class: GraphicsContext
Stefan Vogel <sv@exept.de>
parents: 6173
diff changeset
   805
3807505561bf class: GraphicsContext
Stefan Vogel <sv@exept.de>
parents: 6173
diff changeset
   806
    "Created: 10.4.1996 / 14:32:02 / cg"
3807505561bf class: GraphicsContext
Stefan Vogel <sv@exept.de>
parents: 6173
diff changeset
   807
    "Modified: 28.5.1996 / 14:08:19 / cg"
3807505561bf class: GraphicsContext
Stefan Vogel <sv@exept.de>
parents: 6173
diff changeset
   808
!
3807505561bf class: GraphicsContext
Stefan Vogel <sv@exept.de>
parents: 6173
diff changeset
   809
786
af5fecf93126 added dashStyle: ...
Claus Gittinger <cg@exept.de>
parents: 785
diff changeset
   810
dashStyle:aDashList offset:dashOffset
af5fecf93126 added dashStyle: ...
Claus Gittinger <cg@exept.de>
parents: 785
diff changeset
   811
    "define dashes. Each element of the dashList specifies the length
af5fecf93126 added dashStyle: ...
Claus Gittinger <cg@exept.de>
parents: 785
diff changeset
   812
     of a corresponding dash. For example, setting it to [4 4]
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   813
     defines 4on-4off dashing;
786
af5fecf93126 added dashStyle: ...
Claus Gittinger <cg@exept.de>
parents: 785
diff changeset
   814
     Setting it to [1 2 4 2] defines 1on-2off-4on-2off dashes.
af5fecf93126 added dashStyle: ...
Claus Gittinger <cg@exept.de>
parents: 785
diff changeset
   815
     The dashOffset specifies where in the dashList the dashing starts.
af5fecf93126 added dashStyle: ...
Claus Gittinger <cg@exept.de>
parents: 785
diff changeset
   816
     Ignored here - this may not be supported by all graphics devices."
af5fecf93126 added dashStyle: ...
Claus Gittinger <cg@exept.de>
parents: 785
diff changeset
   817
af5fecf93126 added dashStyle: ...
Claus Gittinger <cg@exept.de>
parents: 785
diff changeset
   818
    ^ self
af5fecf93126 added dashStyle: ...
Claus Gittinger <cg@exept.de>
parents: 785
diff changeset
   819
af5fecf93126 added dashStyle: ...
Claus Gittinger <cg@exept.de>
parents: 785
diff changeset
   820
    "Created: 4.6.1996 / 18:59:34 / cg"
af5fecf93126 added dashStyle: ...
Claus Gittinger <cg@exept.de>
parents: 785
diff changeset
   821
    "Modified: 4.6.1996 / 19:03:38 / cg"
af5fecf93126 added dashStyle: ...
Claus Gittinger <cg@exept.de>
parents: 785
diff changeset
   822
!
af5fecf93126 added dashStyle: ...
Claus Gittinger <cg@exept.de>
parents: 785
diff changeset
   823
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   824
font
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   825
    "return the current drawing font"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   826
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   827
    ^ font
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   828
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   829
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   830
font:aFont
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   831
    "set the drawing font"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   832
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   833
    ^ self subclassResponsibility
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   834
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   835
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   836
function
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   837
    "return the current drawing function"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   838
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   839
    ^ function
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   840
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   841
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   842
function:aFunctionSymbol
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   843
    "set the drawing function"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   844
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   845
    ^ self subclassResponsibility
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   846
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   847
735
44ad59ece2db checkin from browser
Claus Gittinger <cg@exept.de>
parents: 727
diff changeset
   848
graphicsContext
44ad59ece2db checkin from browser
Claus Gittinger <cg@exept.de>
parents: 727
diff changeset
   849
    "for ST-80 compatibility"
44ad59ece2db checkin from browser
Claus Gittinger <cg@exept.de>
parents: 727
diff changeset
   850
44ad59ece2db checkin from browser
Claus Gittinger <cg@exept.de>
parents: 727
diff changeset
   851
    ^ self
44ad59ece2db checkin from browser
Claus Gittinger <cg@exept.de>
parents: 727
diff changeset
   852
!
44ad59ece2db checkin from browser
Claus Gittinger <cg@exept.de>
parents: 727
diff changeset
   853
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 726
diff changeset
   854
graphicsDevice
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 726
diff changeset
   855
    "same as #device, for ST-80 compatibility"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 726
diff changeset
   856
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 726
diff changeset
   857
    ^ device
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 726
diff changeset
   858
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 726
diff changeset
   859
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   860
joinStyle
4377
d71b81b9797f comments
Claus Gittinger <cg@exept.de>
parents: 4215
diff changeset
   861
    "return the current join-style for polygon-drawing.
d71b81b9797f comments
Claus Gittinger <cg@exept.de>
parents: 4215
diff changeset
   862
     possible styles are: #miter, #bevel, #round"
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   863
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   864
    ^ joinStyle
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   865
!
12
9f0995fac1fa *** empty log message ***
claus
parents: 6
diff changeset
   866
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   867
joinStyle:aStyleSymbol
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   868
    "set the join-style of lines in polygon-drawing;
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   869
     possible styles are: #miter, #bevel, #round"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   870
678
a0e9b66778d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 671
diff changeset
   871
    aStyleSymbol isNil ifTrue:[
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
   872
	joinStyle := #miter
678
a0e9b66778d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 671
diff changeset
   873
    ] ifFalse:[
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
   874
	joinStyle := aStyleSymbol
678
a0e9b66778d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 671
diff changeset
   875
    ]
a0e9b66778d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 671
diff changeset
   876
a0e9b66778d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 671
diff changeset
   877
    "Modified: 12.5.1996 / 22:24:14 / cg"
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   878
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   879
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   880
lineStyle
4377
d71b81b9797f comments
Claus Gittinger <cg@exept.de>
parents: 4215
diff changeset
   881
    "return the current line-drawing-style.
d71b81b9797f comments
Claus Gittinger <cg@exept.de>
parents: 4215
diff changeset
   882
     possible styles are: #solid, #dashed, #doubleDashed,
d71b81b9797f comments
Claus Gittinger <cg@exept.de>
parents: 4215
diff changeset
   883
     #dotted, #dashDot or #dashDotDot."
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   884
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   885
    ^ lineStyle
2
b35336ab0de3 *** empty log message ***
claus
parents: 0
diff changeset
   886
!
b35336ab0de3 *** empty log message ***
claus
parents: 0
diff changeset
   887
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   888
lineStyle:aStyleSymbol
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   889
    "set the line-drawing-style;
2360
c7ca5d55d8ce comment
Claus Gittinger <cg@exept.de>
parents: 2354
diff changeset
   890
     possible styles are: #solid, #dashed, #doubleDashed,
c7ca5d55d8ce comment
Claus Gittinger <cg@exept.de>
parents: 2354
diff changeset
   891
     #dotted, #dashDot or #dashDotDot."
151
claus
parents: 134
diff changeset
   892
678
a0e9b66778d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 671
diff changeset
   893
    aStyleSymbol isNil ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   894
	lineStyle := #solid
678
a0e9b66778d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 671
diff changeset
   895
    ] ifFalse:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   896
	lineStyle := aStyleSymbol
678
a0e9b66778d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 671
diff changeset
   897
    ]
a0e9b66778d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 671
diff changeset
   898
a0e9b66778d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 671
diff changeset
   899
    "Modified: 12.5.1996 / 22:19:25 / cg"
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   900
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   901
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   902
lineWidth
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   903
    "return the current drawing linewidth"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   904
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   905
    ^ lineWidth
151
claus
parents: 134
diff changeset
   906
!
claus
parents: 134
diff changeset
   907
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   908
lineWidth:aNumber
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   909
    "set the line drawing width in pixels"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   910
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   911
    lineWidth := aNumber
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   912
!
151
claus
parents: 134
diff changeset
   913
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   914
mask
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   915
    "return the current drawing mask"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   916
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   917
    ^ mask
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   918
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   919
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   920
mask:aForm
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   921
    "set the drawing mask"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   922
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   923
    ^ self subclassResponsibility
151
claus
parents: 134
diff changeset
   924
!
claus
parents: 134
diff changeset
   925
claus
parents: 134
diff changeset
   926
maskOrigin
claus
parents: 134
diff changeset
   927
    "return the origin within the mask (used to draw with patterns).
claus
parents: 134
diff changeset
   928
     Should be redefined in classes which support it.
claus
parents: 134
diff changeset
   929
     This is an alias for ST-80's #phase"
claus
parents: 134
diff changeset
   930
claus
parents: 134
diff changeset
   931
    ^ maskOrigin
claus
parents: 134
diff changeset
   932
!
claus
parents: 134
diff changeset
   933
claus
parents: 134
diff changeset
   934
maskOrigin:aPoint
claus
parents: 134
diff changeset
   935
    "set the origin within the mask (used to draw with patterns).
claus
parents: 134
diff changeset
   936
     Should be redefined in classes which support it.
claus
parents: 134
diff changeset
   937
     This is an alias for ST-80's #phase:"
claus
parents: 134
diff changeset
   938
2017
2cd9aaa851a7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
   939
    maskOrigin := aPoint.
2cd9aaa851a7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
   940
    ^ self
2cd9aaa851a7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
   941
2cd9aaa851a7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
   942
    "Modified: / 26.1.1998 / 18:59:18 / cg"
151
claus
parents: 134
diff changeset
   943
!
claus
parents: 134
diff changeset
   944
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
   945
maskOriginX:x y:y
151
claus
parents: 134
diff changeset
   946
    "set the origin within the mask (used to draw with patterns).
claus
parents: 134
diff changeset
   947
     Should be redefined in classes which support it.
claus
parents: 134
diff changeset
   948
     This is an alias for ST-80's #phase:"
109
ba47d9d6bda8 *** empty log message ***
claus
parents: 81
diff changeset
   949
2017
2cd9aaa851a7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
   950
    ^ self maskOrigin:(x @ y)
2cd9aaa851a7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
   951
2cd9aaa851a7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1956
diff changeset
   952
    "Modified: / 26.1.1998 / 18:59:56 / cg"
12
9f0995fac1fa *** empty log message ***
claus
parents: 6
diff changeset
   953
!
9f0995fac1fa *** empty log message ***
claus
parents: 6
diff changeset
   954
719
62f1217f0084 prepare for separation of the view hierarchy; moved clipStuff up into here
Claus Gittinger <cg@exept.de>
parents: 717
diff changeset
   955
medium
1346
619cd027ce68 commentary
ca
parents: 1319
diff changeset
   956
    "return the destination medium i.e. the underlying graphics device"
719
62f1217f0084 prepare for separation of the view hierarchy; moved clipStuff up into here
Claus Gittinger <cg@exept.de>
parents: 717
diff changeset
   957
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 726
diff changeset
   958
    ^ device
719
62f1217f0084 prepare for separation of the view hierarchy; moved clipStuff up into here
Claus Gittinger <cg@exept.de>
parents: 717
diff changeset
   959
720
a582a7af45f4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 719
diff changeset
   960
    "Modified: 28.5.1996 / 14:26:03 / cg"
719
62f1217f0084 prepare for separation of the view hierarchy; moved clipStuff up into here
Claus Gittinger <cg@exept.de>
parents: 717
diff changeset
   961
!
62f1217f0084 prepare for separation of the view hierarchy; moved clipStuff up into here
Claus Gittinger <cg@exept.de>
parents: 717
diff changeset
   962
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   963
paint
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   964
    "return the current paint drawing color"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   965
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   966
    ^ paint
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   967
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   968
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   969
paint:aColor
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   970
    "set the drawing painting color, aColor can be a dithered one"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   971
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   972
    paint := aColor
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   973
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   974
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   975
paint:fgColor on:bgColor
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   976
    "set the paint and backgroundPaint, used for text and bitmaps.
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   977
     Both colors may be dithered colors"
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   978
671
1bca26786912 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
   979
    fgColor ~~ paint ifTrue:[
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
   980
	self paint:fgColor.
671
1bca26786912 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
   981
    ].
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   982
    bgPaint := bgColor
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
   983
671
1bca26786912 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
   984
    "Modified: 12.5.1996 / 19:40:43 / cg"
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   985
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   986
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   987
viewOrigin
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   988
    "return the drawables visible origin (for scrolling)"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   989
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
   990
    ^ 0@0
6272
406862df2374 class: GraphicsContext
Stefan Vogel <sv@exept.de>
parents: 6268
diff changeset
   991
!
406862df2374 class: GraphicsContext
Stefan Vogel <sv@exept.de>
parents: 6268
diff changeset
   992
406862df2374 class: GraphicsContext
Stefan Vogel <sv@exept.de>
parents: 6268
diff changeset
   993
whiteColor
6535
163c6d470624 class: GraphicsContext
Claus Gittinger <cg@exept.de>
parents: 6387
diff changeset
   994
    "return the white color on this device.
7463
48202ec4ce92 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7457
diff changeset
   995
     This is the same as 'Color white onDevice:self device', but much faster."
6535
163c6d470624 class: GraphicsContext
Claus Gittinger <cg@exept.de>
parents: 6387
diff changeset
   996
6272
406862df2374 class: GraphicsContext
Stefan Vogel <sv@exept.de>
parents: 6268
diff changeset
   997
    ^ device whiteColor
418
0e10e256d5b2 scale access methods moved from SimpleView
Claus Gittinger <cg@exept.de>
parents: 386
diff changeset
   998
! !
0e10e256d5b2 scale access methods moved from SimpleView
Claus Gittinger <cg@exept.de>
parents: 386
diff changeset
   999
0e10e256d5b2 scale access methods moved from SimpleView
Claus Gittinger <cg@exept.de>
parents: 386
diff changeset
  1000
!GraphicsContext methodsFor:'accessing-transformation'!
0e10e256d5b2 scale access methods moved from SimpleView
Claus Gittinger <cg@exept.de>
parents: 386
diff changeset
  1001
0e10e256d5b2 scale access methods moved from SimpleView
Claus Gittinger <cg@exept.de>
parents: 386
diff changeset
  1002
scale
0e10e256d5b2 scale access methods moved from SimpleView
Claus Gittinger <cg@exept.de>
parents: 386
diff changeset
  1003
    "return the scale factor (as point) of the transformation"
0e10e256d5b2 scale access methods moved from SimpleView
Claus Gittinger <cg@exept.de>
parents: 386
diff changeset
  1004
707
d166ed985c61 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
  1005
    transformation isNil ifTrue:[^ 1@1].
418
0e10e256d5b2 scale access methods moved from SimpleView
Claus Gittinger <cg@exept.de>
parents: 386
diff changeset
  1006
    ^ transformation scale
707
d166ed985c61 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
  1007
d166ed985c61 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
  1008
    "Modified: 21.5.1996 / 21:16:47 / cg"
418
0e10e256d5b2 scale access methods moved from SimpleView
Claus Gittinger <cg@exept.de>
parents: 386
diff changeset
  1009
!
0e10e256d5b2 scale access methods moved from SimpleView
Claus Gittinger <cg@exept.de>
parents: 386
diff changeset
  1010
0e10e256d5b2 scale access methods moved from SimpleView
Claus Gittinger <cg@exept.de>
parents: 386
diff changeset
  1011
scale:aPoint
0e10e256d5b2 scale access methods moved from SimpleView
Claus Gittinger <cg@exept.de>
parents: 386
diff changeset
  1012
    "set the scale factor of the transformation"
0e10e256d5b2 scale access methods moved from SimpleView
Claus Gittinger <cg@exept.de>
parents: 386
diff changeset
  1013
0e10e256d5b2 scale access methods moved from SimpleView
Claus Gittinger <cg@exept.de>
parents: 386
diff changeset
  1014
    transformation isNil ifTrue:[
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1015
	aPoint = 1 ifTrue:[^ self].
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1016
	transformation := WindowingTransformation scale:aPoint translation:0
619
a46cb2ef56bf examples
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
  1017
    ] ifFalse:[
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1018
	transformation scale:aPoint.
619
a46cb2ef56bf examples
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
  1019
    ]
418
0e10e256d5b2 scale access methods moved from SimpleView
Claus Gittinger <cg@exept.de>
parents: 386
diff changeset
  1020
619
a46cb2ef56bf examples
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
  1021
    "Modified: 27.4.1996 / 18:47:38 / cg"
76
db983d8d7e53 scaling
claus
parents: 71
diff changeset
  1022
!
db983d8d7e53 scaling
claus
parents: 71
diff changeset
  1023
7474
ff35cd980d70 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 7463
diff changeset
  1024
scale:scale translation:aPoint
ff35cd980d70 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 7463
diff changeset
  1025
    transformation isNil ifTrue:[
ff35cd980d70 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 7463
diff changeset
  1026
        (aPoint = 0 and:[scale = 1]) ifTrue:[^ self].
ff35cd980d70 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 7463
diff changeset
  1027
        transformation := WindowingTransformation scale:scale translation:aPoint
ff35cd980d70 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 7463
diff changeset
  1028
    ] ifFalse:[
ff35cd980d70 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 7463
diff changeset
  1029
        transformation scale:scale translation:aPoint.
ff35cd980d70 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 7463
diff changeset
  1030
    ]
ff35cd980d70 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 7463
diff changeset
  1031
!
ff35cd980d70 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 7463
diff changeset
  1032
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1033
transformation
76
db983d8d7e53 scaling
claus
parents: 71
diff changeset
  1034
    "return the transformation"
db983d8d7e53 scaling
claus
parents: 71
diff changeset
  1035
db983d8d7e53 scaling
claus
parents: 71
diff changeset
  1036
    ^ transformation
db983d8d7e53 scaling
claus
parents: 71
diff changeset
  1037
!
db983d8d7e53 scaling
claus
parents: 71
diff changeset
  1038
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1039
transformation:aTransformation
76
db983d8d7e53 scaling
claus
parents: 71
diff changeset
  1040
    "set the transformation"
db983d8d7e53 scaling
claus
parents: 71
diff changeset
  1041
db983d8d7e53 scaling
claus
parents: 71
diff changeset
  1042
    transformation := aTransformation
619
a46cb2ef56bf examples
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
  1043
!
a46cb2ef56bf examples
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
  1044
1319
4f21750c19bf added #translateBy:
Claus Gittinger <cg@exept.de>
parents: 1280
diff changeset
  1045
translateBy:aPoint
4f21750c19bf added #translateBy:
Claus Gittinger <cg@exept.de>
parents: 1280
diff changeset
  1046
    "add to the translation offset of the transformation"
4f21750c19bf added #translateBy:
Claus Gittinger <cg@exept.de>
parents: 1280
diff changeset
  1047
4f21750c19bf added #translateBy:
Claus Gittinger <cg@exept.de>
parents: 1280
diff changeset
  1048
    transformation isNil ifTrue:[
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1049
	aPoint = 0 ifTrue:[^ self].
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1050
	transformation := WindowingTransformation scale:1 translation:aPoint
1319
4f21750c19bf added #translateBy:
Claus Gittinger <cg@exept.de>
parents: 1280
diff changeset
  1051
    ] ifFalse:[
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1052
	transformation translateBy:aPoint
1319
4f21750c19bf added #translateBy:
Claus Gittinger <cg@exept.de>
parents: 1280
diff changeset
  1053
    ]
4f21750c19bf added #translateBy:
Claus Gittinger <cg@exept.de>
parents: 1280
diff changeset
  1054
4f21750c19bf added #translateBy:
Claus Gittinger <cg@exept.de>
parents: 1280
diff changeset
  1055
    "Created: 10.2.1997 / 13:50:22 / cg"
4f21750c19bf added #translateBy:
Claus Gittinger <cg@exept.de>
parents: 1280
diff changeset
  1056
!
4f21750c19bf added #translateBy:
Claus Gittinger <cg@exept.de>
parents: 1280
diff changeset
  1057
619
a46cb2ef56bf examples
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
  1058
translation
a46cb2ef56bf examples
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
  1059
    "return the translation factor (as point) of the transformation"
a46cb2ef56bf examples
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
  1060
a46cb2ef56bf examples
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
  1061
    transformation isNil ifTrue:[^ 0@0].
a46cb2ef56bf examples
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
  1062
    ^ transformation translation
a46cb2ef56bf examples
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
  1063
a46cb2ef56bf examples
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
  1064
    "Created: 27.4.1996 / 18:46:41 / cg"
a46cb2ef56bf examples
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
  1065
!
a46cb2ef56bf examples
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
  1066
a46cb2ef56bf examples
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
  1067
translation:aPoint
a46cb2ef56bf examples
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
  1068
    "set the translation offset of the transformation"
a46cb2ef56bf examples
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
  1069
a46cb2ef56bf examples
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
  1070
    transformation isNil ifTrue:[
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1071
	aPoint = 0 ifTrue:[^ self].
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1072
	transformation := WindowingTransformation scale:1 translation:aPoint
619
a46cb2ef56bf examples
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
  1073
    ] ifFalse:[
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1074
	transformation translation:aPoint.
619
a46cb2ef56bf examples
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
  1075
    ]
a46cb2ef56bf examples
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
  1076
a46cb2ef56bf examples
Claus Gittinger <cg@exept.de>
parents: 611
diff changeset
  1077
    "Created: 27.4.1996 / 18:47:28 / cg"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1078
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
  1079
4396
bd626d040e1a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4393
diff changeset
  1080
!GraphicsContext methodsFor:'basic drawing'!
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1081
653
0ad3de022f8b fill/drawArc..w:h:.. renamed to ...width:height:...
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
  1082
displayArcX:x y:y width:width height:height from:startAngle angle:angle
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1083
    "draw an arc in a box
48194c26a46c Initial revision
claus
parents:
diff changeset
  1084
     - this could be recoded to draw using displayLine"
48194c26a46c Initial revision
claus
parents:
diff changeset
  1085
48194c26a46c Initial revision
claus
parents:
diff changeset
  1086
    ^ self subclassResponsibility
653
0ad3de022f8b fill/drawArc..w:h:.. renamed to ...width:height:...
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
  1087
0ad3de022f8b fill/drawArc..w:h:.. renamed to ...width:height:...
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
  1088
    "Created: 8.5.1996 / 08:47:06 / cg"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1089
!
48194c26a46c Initial revision
claus
parents:
diff changeset
  1090
2354
2755d3d1addd added #displayDottedRectangle... (for win95)
Claus Gittinger <cg@exept.de>
parents: 2273
diff changeset
  1091
displayDottedRectangleX:x y:y width:w height:h
2755d3d1addd added #displayDottedRectangle... (for win95)
Claus Gittinger <cg@exept.de>
parents: 2273
diff changeset
  1092
    "draw a dotted-line rectangle
2755d3d1addd added #displayDottedRectangle... (for win95)
Claus Gittinger <cg@exept.de>
parents: 2273
diff changeset
  1093
     A general implementation is found here; deviceGC's
2755d3d1addd added #displayDottedRectangle... (for win95)
Claus Gittinger <cg@exept.de>
parents: 2273
diff changeset
  1094
     may reimplement this if directly supported by the device"
2755d3d1addd added #displayDottedRectangle... (for win95)
Claus Gittinger <cg@exept.de>
parents: 2273
diff changeset
  1095
2747
04c41d416186 draw dotted line faster if display supports it.
Claus Gittinger <cg@exept.de>
parents: 2460
diff changeset
  1096
    |lastX lastY x0 y0 oldStyle|
04c41d416186 draw dotted line faster if display supports it.
Claus Gittinger <cg@exept.de>
parents: 2460
diff changeset
  1097
3535
d9e6b1086029 dotted line
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1098
    (false "(device platformName ~= 'WIN32')"
2747
04c41d416186 draw dotted line faster if display supports it.
Claus Gittinger <cg@exept.de>
parents: 2460
diff changeset
  1099
    or:[OperatingSystem isMSWINDOWSNTlike]) ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1100
	oldStyle := lineStyle.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1101
	self lineStyle:#dotted.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1102
	self displayRectangleX:x y:y width:w height:h.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1103
	self lineStyle:oldStyle.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1104
	^ self.
2747
04c41d416186 draw dotted line faster if display supports it.
Claus Gittinger <cg@exept.de>
parents: 2460
diff changeset
  1105
    ].
2354
2755d3d1addd added #displayDottedRectangle... (for win95)
Claus Gittinger <cg@exept.de>
parents: 2273
diff changeset
  1106
2755d3d1addd added #displayDottedRectangle... (for win95)
Claus Gittinger <cg@exept.de>
parents: 2273
diff changeset
  1107
    1 to:w-1 by:2 do:[:o |
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1108
	lastX := x + o.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1109
	self displayPointX:lastX y:y.
2354
2755d3d1addd added #displayDottedRectangle... (for win95)
Claus Gittinger <cg@exept.de>
parents: 2273
diff changeset
  1110
    ].
2755d3d1addd added #displayDottedRectangle... (for win95)
Claus Gittinger <cg@exept.de>
parents: 2273
diff changeset
  1111
    y0 := 1.
2755d3d1addd added #displayDottedRectangle... (for win95)
Claus Gittinger <cg@exept.de>
parents: 2273
diff changeset
  1112
    lastX == (x+w-1) ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1113
	y0 := 0
2354
2755d3d1addd added #displayDottedRectangle... (for win95)
Claus Gittinger <cg@exept.de>
parents: 2273
diff changeset
  1114
    ].
2755d3d1addd added #displayDottedRectangle... (for win95)
Claus Gittinger <cg@exept.de>
parents: 2273
diff changeset
  1115
    y0 to:h-1 by:2 do:[:o |
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1116
	lastY := y+o.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1117
	self displayPointX:x+w-1 y:lastY.
2354
2755d3d1addd added #displayDottedRectangle... (for win95)
Claus Gittinger <cg@exept.de>
parents: 2273
diff changeset
  1118
    ].
2755d3d1addd added #displayDottedRectangle... (for win95)
Claus Gittinger <cg@exept.de>
parents: 2273
diff changeset
  1119
    x0 := w-2.
2755d3d1addd added #displayDottedRectangle... (for win95)
Claus Gittinger <cg@exept.de>
parents: 2273
diff changeset
  1120
    lastY == (y+h-1) ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1121
	x0:= w-1
2354
2755d3d1addd added #displayDottedRectangle... (for win95)
Claus Gittinger <cg@exept.de>
parents: 2273
diff changeset
  1122
    ].
2755d3d1addd added #displayDottedRectangle... (for win95)
Claus Gittinger <cg@exept.de>
parents: 2273
diff changeset
  1123
    x0 to:0 by:-2 do:[:o |
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1124
	lastX := x+o.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1125
	self displayPointX:lastX y:y+h-1.
2354
2755d3d1addd added #displayDottedRectangle... (for win95)
Claus Gittinger <cg@exept.de>
parents: 2273
diff changeset
  1126
    ].
2755d3d1addd added #displayDottedRectangle... (for win95)
Claus Gittinger <cg@exept.de>
parents: 2273
diff changeset
  1127
    y0 := h-1.
2755d3d1addd added #displayDottedRectangle... (for win95)
Claus Gittinger <cg@exept.de>
parents: 2273
diff changeset
  1128
    lastX == 0 ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1129
	y0 := h-1
2354
2755d3d1addd added #displayDottedRectangle... (for win95)
Claus Gittinger <cg@exept.de>
parents: 2273
diff changeset
  1130
    ].
2755d3d1addd added #displayDottedRectangle... (for win95)
Claus Gittinger <cg@exept.de>
parents: 2273
diff changeset
  1131
    y0 to:0 by:-2 do:[:o |
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1132
	self displayPointX:x y:y+o.
2354
2755d3d1addd added #displayDottedRectangle... (for win95)
Claus Gittinger <cg@exept.de>
parents: 2273
diff changeset
  1133
    ].
2755d3d1addd added #displayDottedRectangle... (for win95)
Claus Gittinger <cg@exept.de>
parents: 2273
diff changeset
  1134
3535
d9e6b1086029 dotted line
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1135
    "Modified: / 6.11.2001 / 08:48:18 / cg"
2354
2755d3d1addd added #displayDottedRectangle... (for win95)
Claus Gittinger <cg@exept.de>
parents: 2273
diff changeset
  1136
!
2755d3d1addd added #displayDottedRectangle... (for win95)
Claus Gittinger <cg@exept.de>
parents: 2273
diff changeset
  1137
2392
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1138
displayHorizontalWavelineFromX:x0 y:y0 toX:x1
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1139
    "draw a horizontal wave-line from x0/y0 to x1/y0"
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1140
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1141
    |w h pattern form x oldClip|
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1142
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1143
"/    pattern := #[
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1144
"/                 2r00000000 2r00111100
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1145
"/                 2r00000000 2r11000011
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1146
"/                 2r11000011 2r00000000
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1147
"/                 2r00111100 2r00000000
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1148
"/                ].
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1149
"/    h := 4.
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1150
"/    w := 16.
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1151
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1152
"/    pattern := #[
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1153
"/                 2r00000000 2r01111000
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1154
"/                 2r00000000 2r10000100
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1155
"/                 2r10000001 2r00000000
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1156
"/                 2r01000010 2r00000000
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1157
"/                 2r00111100 2r00000000
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1158
"/                ].
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1159
"/    h := 5.
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1160
"/    w := 14.
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1161
2782
00a7ee0a230d smaller underwave pattern
Claus Gittinger <cg@exept.de>
parents: 2765
diff changeset
  1162
"/    pattern := #[
00a7ee0a230d smaller underwave pattern
Claus Gittinger <cg@exept.de>
parents: 2765
diff changeset
  1163
"/                 2r00000001 2r11100000
00a7ee0a230d smaller underwave pattern
Claus Gittinger <cg@exept.de>
parents: 2765
diff changeset
  1164
"/                 2r00000010 2r00010000
00a7ee0a230d smaller underwave pattern
Claus Gittinger <cg@exept.de>
parents: 2765
diff changeset
  1165
"/                 2r10000100 2r00000000
00a7ee0a230d smaller underwave pattern
Claus Gittinger <cg@exept.de>
parents: 2765
diff changeset
  1166
"/                 2r01111000 2r00000000
00a7ee0a230d smaller underwave pattern
Claus Gittinger <cg@exept.de>
parents: 2765
diff changeset
  1167
"/                ].
00a7ee0a230d smaller underwave pattern
Claus Gittinger <cg@exept.de>
parents: 2765
diff changeset
  1168
"/    h := 4.
00a7ee0a230d smaller underwave pattern
Claus Gittinger <cg@exept.de>
parents: 2765
diff changeset
  1169
"/    w := 12.
00a7ee0a230d smaller underwave pattern
Claus Gittinger <cg@exept.de>
parents: 2765
diff changeset
  1170
"/
00a7ee0a230d smaller underwave pattern
Claus Gittinger <cg@exept.de>
parents: 2765
diff changeset
  1171
"/    pattern := #[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1172
"/                 2r00000011
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1173
"/                 2r11001100
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1174
"/                 2r00110000
2782
00a7ee0a230d smaller underwave pattern
Claus Gittinger <cg@exept.de>
parents: 2765
diff changeset
  1175
"/                ].
00a7ee0a230d smaller underwave pattern
Claus Gittinger <cg@exept.de>
parents: 2765
diff changeset
  1176
"/    h := 3.
00a7ee0a230d smaller underwave pattern
Claus Gittinger <cg@exept.de>
parents: 2765
diff changeset
  1177
"/    w := 8.
00a7ee0a230d smaller underwave pattern
Claus Gittinger <cg@exept.de>
parents: 2765
diff changeset
  1178
2392
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1179
    pattern := #[
7463
48202ec4ce92 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7457
diff changeset
  1180
                 2r11001100 2r11001100 2r11001100 2r11001100
48202ec4ce92 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7457
diff changeset
  1181
                 2r00110011 2r00110011 2r00110011 2r00110011
48202ec4ce92 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7457
diff changeset
  1182
                ].
2782
00a7ee0a230d smaller underwave pattern
Claus Gittinger <cg@exept.de>
parents: 2765
diff changeset
  1183
    h := 2.
5777
8a5b6ccd5476 changed: #displayHorizontalWavelineFromX:y:toX:
Claus Gittinger <cg@exept.de>
parents: 5355
diff changeset
  1184
    w := 32.
2782
00a7ee0a230d smaller underwave pattern
Claus Gittinger <cg@exept.de>
parents: 2765
diff changeset
  1185
5780
7acd722f9cf9 comment/format in: #displayHorizontalWavelineFromX:y:toX:
Claus Gittinger <cg@exept.de>
parents: 5777
diff changeset
  1186
"/    pattern := #[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1187
"/                 2r11000000
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1188
"/                 2r00110000
5780
7acd722f9cf9 comment/format in: #displayHorizontalWavelineFromX:y:toX:
Claus Gittinger <cg@exept.de>
parents: 5777
diff changeset
  1189
"/                ].
7acd722f9cf9 comment/format in: #displayHorizontalWavelineFromX:y:toX:
Claus Gittinger <cg@exept.de>
parents: 5777
diff changeset
  1190
"/    h := 2.
7acd722f9cf9 comment/format in: #displayHorizontalWavelineFromX:y:toX:
Claus Gittinger <cg@exept.de>
parents: 5777
diff changeset
  1191
"/    w := 4.
7acd722f9cf9 comment/format in: #displayHorizontalWavelineFromX:y:toX:
Claus Gittinger <cg@exept.de>
parents: 5777
diff changeset
  1192
2782
00a7ee0a230d smaller underwave pattern
Claus Gittinger <cg@exept.de>
parents: 2765
diff changeset
  1193
    form := Form width:w height:h fromArray:pattern.
2392
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1194
7463
48202ec4ce92 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7457
diff changeset
  1195
    oldClip := self clippingBoundsOrNil.
48202ec4ce92 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7457
diff changeset
  1196
    self clippingBounds:((x0 @ y0) corner:(x1 @ (y0+h))).
2392
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1197
2783
665caca8506e care to use the same waveline origin
Claus Gittinger <cg@exept.de>
parents: 2782
diff changeset
  1198
    x := x0 truncateTo:w.
2392
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1199
    [x <= x1] whileTrue:[
7463
48202ec4ce92 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7457
diff changeset
  1200
        self displayForm:form x:x y:y0.
48202ec4ce92 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7457
diff changeset
  1201
        x := x + w.
2392
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1202
    ].
7463
48202ec4ce92 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7457
diff changeset
  1203
    self clippingBounds:oldClip
2392
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1204
5777
8a5b6ccd5476 changed: #displayHorizontalWavelineFromX:y:toX:
Claus Gittinger <cg@exept.de>
parents: 5355
diff changeset
  1205
    "Created: / 28-10-1998 / 15:31:41 / cg"
5780
7acd722f9cf9 comment/format in: #displayHorizontalWavelineFromX:y:toX:
Claus Gittinger <cg@exept.de>
parents: 5777
diff changeset
  1206
    "Modified: / 24-07-2011 / 21:12:24 / cg"
2392
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1207
!
5664d81a3ea4 added support for wave-line underlining
Claus Gittinger <cg@exept.de>
parents: 2360
diff changeset
  1208
726
5400de25657e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 720
diff changeset
  1209
displayLineFromX:x0 y:y0 toX:x1 y:y1
5400de25657e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 720
diff changeset
  1210
    "draw a line from x0/y0 to x1/y1"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1211
726
5400de25657e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 720
diff changeset
  1212
    ^ self subclassResponsibility
71
6a42b2b115f8 *** empty log message ***
claus
parents: 54
diff changeset
  1213
726
5400de25657e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 720
diff changeset
  1214
    "Created: 28.5.1996 / 17:12:37 / cg"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1215
!
48194c26a46c Initial revision
claus
parents:
diff changeset
  1216
26
ac9f66dc8f53 *** empty log message ***
claus
parents: 24
diff changeset
  1217
displayOpaqueForm:aForm x:x y:y
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1218
    "draw a form at x/y; if the form has depth 1, 1's in the form are
48194c26a46c Initial revision
claus
parents:
diff changeset
  1219
     drawn in current fg, 0's in current bg color.
48194c26a46c Initial revision
claus
parents:
diff changeset
  1220
     If the form has depth ~~ 1, it is copied as is onto the receiver"
48194c26a46c Initial revision
claus
parents:
diff changeset
  1221
48194c26a46c Initial revision
claus
parents:
diff changeset
  1222
    ^ self subclassResponsibility
48194c26a46c Initial revision
claus
parents:
diff changeset
  1223
!
48194c26a46c Initial revision
claus
parents:
diff changeset
  1224
48194c26a46c Initial revision
claus
parents:
diff changeset
  1225
displayOpaqueString:aString from:index1 to:index2 x:x y:y
48194c26a46c Initial revision
claus
parents:
diff changeset
  1226
    "draw part of a string with both fg and bg at x/y in current font"
48194c26a46c Initial revision
claus
parents:
diff changeset
  1227
48194c26a46c Initial revision
claus
parents:
diff changeset
  1228
    ^ self subclassResponsibility
48194c26a46c Initial revision
claus
parents:
diff changeset
  1229
!
48194c26a46c Initial revision
claus
parents:
diff changeset
  1230
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1231
displayOpaqueString:aString from:index1 to:index2 x:x y:y maxWitdh:maxWidth
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1232
    "draw part of a string with both fg and bg at x/y in current font"
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1233
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1234
    ^ self subclassResponsibility
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1235
!
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1236
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1237
displayPolygon:aPolygon
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1238
    "draw a polygon
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1239
     - this could be recoded to draw using displayLine"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1240
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1241
    ^ self subclassResponsibility
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1242
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1243
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1244
displayRectangleX:x y:y width:w height:h
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1245
    "draw a rectangle
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1246
     - this could be recoded to draw using displayLine"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1247
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1248
    ^ self subclassResponsibility
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1249
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1250
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1251
displayString:aString from:index1 to:index2 x:x y:y
48194c26a46c Initial revision
claus
parents:
diff changeset
  1252
    "draw part of a string with fg at x/y in current font"
48194c26a46c Initial revision
claus
parents:
diff changeset
  1253
48194c26a46c Initial revision
claus
parents:
diff changeset
  1254
    ^ self subclassResponsibility
3663
d40999d6cd1e refactored
Michael Beyl <mb@exept.de>
parents: 3535
diff changeset
  1255
!
d40999d6cd1e refactored
Michael Beyl <mb@exept.de>
parents: 3535
diff changeset
  1256
d40999d6cd1e refactored
Michael Beyl <mb@exept.de>
parents: 3535
diff changeset
  1257
displayString:aString from:index1 to:index2 x:x y:y opaque:opaque
d40999d6cd1e refactored
Michael Beyl <mb@exept.de>
parents: 3535
diff changeset
  1258
    "draw part of a string with both fg and bg at x/y in current font"
d40999d6cd1e refactored
Michael Beyl <mb@exept.de>
parents: 3535
diff changeset
  1259
d40999d6cd1e refactored
Michael Beyl <mb@exept.de>
parents: 3535
diff changeset
  1260
    opaque ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1261
	self displayOpaqueString:aString from:index1 to:index2 x:x y:y
3663
d40999d6cd1e refactored
Michael Beyl <mb@exept.de>
parents: 3535
diff changeset
  1262
    ] ifFalse:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1263
	self displayString:aString from:index1 to:index2 x:x y:y
3663
d40999d6cd1e refactored
Michael Beyl <mb@exept.de>
parents: 3535
diff changeset
  1264
    ].
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1265
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
  1266
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1267
!GraphicsContext methodsFor:'basic filling'!
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1268
653
0ad3de022f8b fill/drawArc..w:h:.. renamed to ...width:height:...
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
  1269
fillArcX:x y:y width:w height:h from:start angle:angle
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1270
    "fill an arc with current paint color"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1271
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1272
    ^ self subclassResponsibility
653
0ad3de022f8b fill/drawArc..w:h:.. renamed to ...width:height:...
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
  1273
0ad3de022f8b fill/drawArc..w:h:.. renamed to ...width:height:...
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
  1274
    "Created: 8.5.1996 / 08:47:44 / cg"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1275
!
48194c26a46c Initial revision
claus
parents:
diff changeset
  1276
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1277
fillPolygon:points
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1278
    "fill a polygon with current paint color"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1279
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1280
    ^ self subclassResponsibility
157
claus
parents: 151
diff changeset
  1281
!
claus
parents: 151
diff changeset
  1282
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1283
fillRectangleX:x y:y width:w height:h
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1284
    "fill a rectangle with current paint color"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1285
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1286
    ^ self subclassResponsibility
3668
1de1036132ce fillRectangleX with color arg.
Michael Beyl <mb@exept.de>
parents: 3663
diff changeset
  1287
!
1de1036132ce fillRectangleX with color arg.
Michael Beyl <mb@exept.de>
parents: 3663
diff changeset
  1288
1de1036132ce fillRectangleX with color arg.
Michael Beyl <mb@exept.de>
parents: 3663
diff changeset
  1289
fillRectangleX:x y:y width:w height:h color:aColor
1de1036132ce fillRectangleX with color arg.
Michael Beyl <mb@exept.de>
parents: 3663
diff changeset
  1290
    "fill a rectangle with given color"
1de1036132ce fillRectangleX with color arg.
Michael Beyl <mb@exept.de>
parents: 3663
diff changeset
  1291
1de1036132ce fillRectangleX with color arg.
Michael Beyl <mb@exept.de>
parents: 3663
diff changeset
  1292
    |oldPaint|
1de1036132ce fillRectangleX with color arg.
Michael Beyl <mb@exept.de>
parents: 3663
diff changeset
  1293
1de1036132ce fillRectangleX with color arg.
Michael Beyl <mb@exept.de>
parents: 3663
diff changeset
  1294
    oldPaint := paint.
1de1036132ce fillRectangleX with color arg.
Michael Beyl <mb@exept.de>
parents: 3663
diff changeset
  1295
    self paint:aColor.
1de1036132ce fillRectangleX with color arg.
Michael Beyl <mb@exept.de>
parents: 3663
diff changeset
  1296
    self fillRectangleX:x y:y width:w height:h.
1de1036132ce fillRectangleX with color arg.
Michael Beyl <mb@exept.de>
parents: 3663
diff changeset
  1297
    self paint:oldPaint.
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1298
! !
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1299
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1300
!GraphicsContext methodsFor:'drawing'!
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1301
719
62f1217f0084 prepare for separation of the view hierarchy; moved clipStuff up into here
Claus Gittinger <cg@exept.de>
parents: 717
diff changeset
  1302
display:someObject at:aPoint
62f1217f0084 prepare for separation of the view hierarchy; moved clipStuff up into here
Claus Gittinger <cg@exept.de>
parents: 717
diff changeset
  1303
    "draw someObject - this must understand the #displayOn:at: message"
62f1217f0084 prepare for separation of the view hierarchy; moved clipStuff up into here
Claus Gittinger <cg@exept.de>
parents: 717
diff changeset
  1304
62f1217f0084 prepare for separation of the view hierarchy; moved clipStuff up into here
Claus Gittinger <cg@exept.de>
parents: 717
diff changeset
  1305
    someObject displayOn:self at:aPoint
62f1217f0084 prepare for separation of the view hierarchy; moved clipStuff up into here
Claus Gittinger <cg@exept.de>
parents: 717
diff changeset
  1306
62f1217f0084 prepare for separation of the view hierarchy; moved clipStuff up into here
Claus Gittinger <cg@exept.de>
parents: 717
diff changeset
  1307
    "Created: 28.5.1996 / 14:22:57 / cg"
62f1217f0084 prepare for separation of the view hierarchy; moved clipStuff up into here
Claus Gittinger <cg@exept.de>
parents: 717
diff changeset
  1308
!
62f1217f0084 prepare for separation of the view hierarchy; moved clipStuff up into here
Claus Gittinger <cg@exept.de>
parents: 717
diff changeset
  1309
12
9f0995fac1fa *** empty log message ***
claus
parents: 6
diff changeset
  1310
displayArcIn:aRectangle from:startAngle angle:angle
9f0995fac1fa *** empty log message ***
claus
parents: 6
diff changeset
  1311
    "draw an arc in a box"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1312
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1313
    self
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1314
	displayArcX:(aRectangle left)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1315
		  y:(aRectangle top)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1316
	      width:(aRectangle width)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1317
	     height:(aRectangle height)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1318
	       from:startAngle
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1319
	      angle:angle
653
0ad3de022f8b fill/drawArc..w:h:.. renamed to ...width:height:...
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
  1320
0ad3de022f8b fill/drawArc..w:h:.. renamed to ...width:height:...
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
  1321
    "Modified: 8.5.1996 / 08:35:00 / cg"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1322
!
48194c26a46c Initial revision
claus
parents:
diff changeset
  1323
12
9f0995fac1fa *** empty log message ***
claus
parents: 6
diff changeset
  1324
displayArcOrigin:origin corner:corner from:startAngle angle:angle
9f0995fac1fa *** empty log message ***
claus
parents: 6
diff changeset
  1325
    "draw an arc in a box"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1326
48194c26a46c Initial revision
claus
parents:
diff changeset
  1327
    |left top right bot|
48194c26a46c Initial revision
claus
parents:
diff changeset
  1328
48194c26a46c Initial revision
claus
parents:
diff changeset
  1329
    left := origin x.
48194c26a46c Initial revision
claus
parents:
diff changeset
  1330
    top := origin y.
48194c26a46c Initial revision
claus
parents:
diff changeset
  1331
    right := corner x.
48194c26a46c Initial revision
claus
parents:
diff changeset
  1332
    bot := corner y.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1333
    self
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1334
	displayArcX:left
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1335
		  y:top
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1336
	      width:(right - left + 1)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1337
	     height:(bot - top + 1)
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1338
	       from:startAngle
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1339
	      angle:angle
653
0ad3de022f8b fill/drawArc..w:h:.. renamed to ...width:height:...
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
  1340
0ad3de022f8b fill/drawArc..w:h:.. renamed to ...width:height:...
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
  1341
    "Modified: 8.5.1996 / 08:35:25 / cg"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1342
!
48194c26a46c Initial revision
claus
parents:
diff changeset
  1343
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1344
displayCircle:aPoint radius:r
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1345
    "draw a circle around a center point"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1346
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1347
    self displayCircleX:(aPoint x) y:(aPoint y) radius:r
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1348
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1349
12
9f0995fac1fa *** empty log message ***
claus
parents: 6
diff changeset
  1350
displayCircleIn:aRectangle
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1351
    "draw a circle in a box"
48194c26a46c Initial revision
claus
parents:
diff changeset
  1352
48194c26a46c Initial revision
claus
parents:
diff changeset
  1353
    self
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1354
	displayArcX:(aRectangle left)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1355
		  y:(aRectangle top)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1356
	      width:(aRectangle width)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1357
	     height:(aRectangle height)
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1358
	       from:0
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1359
	      angle:360
653
0ad3de022f8b fill/drawArc..w:h:.. renamed to ...width:height:...
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
  1360
0ad3de022f8b fill/drawArc..w:h:.. renamed to ...width:height:...
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
  1361
    "Modified: 8.5.1996 / 08:35:40 / cg"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1362
!
48194c26a46c Initial revision
claus
parents:
diff changeset
  1363
12
9f0995fac1fa *** empty log message ***
claus
parents: 6
diff changeset
  1364
displayCircleX:x y:y radius:r
9f0995fac1fa *** empty log message ***
claus
parents: 6
diff changeset
  1365
    "draw a circle around a center point"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1366
48194c26a46c Initial revision
claus
parents:
diff changeset
  1367
    |d|
48194c26a46c Initial revision
claus
parents:
diff changeset
  1368
    d := 2 * r.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1369
    self
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1370
	displayArcX:(x - r)
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1371
		  y:(y - r)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1372
	      width:d
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1373
	     height:d
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1374
	       from:0
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1375
	      angle:360
653
0ad3de022f8b fill/drawArc..w:h:.. renamed to ...width:height:...
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
  1376
0ad3de022f8b fill/drawArc..w:h:.. renamed to ...width:height:...
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
  1377
    "Modified: 8.5.1996 / 08:36:03 / cg"
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1378
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1379
1953
b3c4d6e5fa4a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  1380
displayForm:aFormOrImage
b3c4d6e5fa4a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  1381
    "draw a form (or image) at the origin"
b3c4d6e5fa4a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  1382
b3c4d6e5fa4a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  1383
    self displayForm:aFormOrImage x:0 y:0
b3c4d6e5fa4a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  1384
b3c4d6e5fa4a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  1385
    "Modified: / 24.4.1997 / 16:00:11 / cg"
b3c4d6e5fa4a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  1386
    "Created: / 9.11.1997 / 00:50:52 / cg"
b3c4d6e5fa4a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  1387
!
b3c4d6e5fa4a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1867
diff changeset
  1388
1654
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1389
displayForm:aFormOrImage at:aPoint
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1390
    "draw a form (or image)"
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1391
1654
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1392
    self displayForm:aFormOrImage x:(aPoint x) y:(aPoint y)
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1393
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1394
    "Modified: 24.4.1997 / 16:00:11 / cg"
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1395
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1396
1654
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1397
displayForm:aFormOrImage x:x y:y
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1398
    "draw a form (or image) at x/y;
1654
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1399
     if the form has depth 1, 1's in the form are
726
5400de25657e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 720
diff changeset
  1400
     drawn in current paint color, 0's are ignored.
1654
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1401
     If the form has depth ~~ 1, the current fg color setting is ignored."
726
5400de25657e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 720
diff changeset
  1402
5400de25657e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 720
diff changeset
  1403
    |fg bg f noColor|
5400de25657e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 720
diff changeset
  1404
1654
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1405
    aFormOrImage depth > 1 ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1406
	self displayOpaqueForm:aFormOrImage x:x y:y.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1407
	^ self.
1654
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1408
    ].
6387
0ee8729af4e6 class: GraphicsContext
Claus Gittinger <cg@exept.de>
parents: 6371
diff changeset
  1409
"/    aFormOrImage mask notNil ifTrue:[
0ee8729af4e6 class: GraphicsContext
Claus Gittinger <cg@exept.de>
parents: 6371
diff changeset
  1410
"/self halt.
0ee8729af4e6 class: GraphicsContext
Claus Gittinger <cg@exept.de>
parents: 6371
diff changeset
  1411
"/    ].
1654
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1412
726
5400de25657e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 720
diff changeset
  1413
    fg := paint.
5400de25657e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 720
diff changeset
  1414
    bg := bgPaint.
5400de25657e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 720
diff changeset
  1415
    f := function.
5400de25657e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 720
diff changeset
  1416
5400de25657e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 720
diff changeset
  1417
    f ~~ #copy ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1418
	self error:'function not supported'.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1419
	^ self
726
5400de25657e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 720
diff changeset
  1420
    ].
5400de25657e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 720
diff changeset
  1421
5400de25657e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 720
diff changeset
  1422
    noColor := Color noColor.
1654
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1423
726
5400de25657e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 720
diff changeset
  1424
    "
5400de25657e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 720
diff changeset
  1425
     stamp out fg-pixels
5400de25657e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 720
diff changeset
  1426
    "
5400de25657e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 720
diff changeset
  1427
    self paint:noColor on:Color allColor function:#and.
1654
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1428
    self displayOpaqueForm:aFormOrImage x:x y:y.
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1429
726
5400de25657e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 720
diff changeset
  1430
    "
5400de25657e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 720
diff changeset
  1431
     or-in fg-pixels
5400de25657e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 720
diff changeset
  1432
    "
5400de25657e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 720
diff changeset
  1433
    self paint:fg on:Color noColor function:#or.
1654
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1434
    self displayOpaqueForm:aFormOrImage x:x y:y.
726
5400de25657e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 720
diff changeset
  1435
    self paint:fg on:fg function:f.
5400de25657e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 720
diff changeset
  1436
1654
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1437
    "Modified: 24.4.1997 / 16:01:43 / cg"
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1438
!
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1439
3663
d40999d6cd1e refactored
Michael Beyl <mb@exept.de>
parents: 3535
diff changeset
  1440
displayForm:aFormOrImage x:x y:y opaque:opaque
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1441
    "draw a form (or image) at x/y;
3663
d40999d6cd1e refactored
Michael Beyl <mb@exept.de>
parents: 3535
diff changeset
  1442
     if the form has depth 1, 1's in the form are
d40999d6cd1e refactored
Michael Beyl <mb@exept.de>
parents: 3535
diff changeset
  1443
     drawn in current paint color, 0's are ignored.
d40999d6cd1e refactored
Michael Beyl <mb@exept.de>
parents: 3535
diff changeset
  1444
     If the form has depth ~~ 1, the current fg color setting is ignored."
d40999d6cd1e refactored
Michael Beyl <mb@exept.de>
parents: 3535
diff changeset
  1445
d40999d6cd1e refactored
Michael Beyl <mb@exept.de>
parents: 3535
diff changeset
  1446
    opaque ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1447
	self displayOpaqueForm:aFormOrImage x:x y:y
3663
d40999d6cd1e refactored
Michael Beyl <mb@exept.de>
parents: 3535
diff changeset
  1448
    ] ifFalse:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1449
	self displayForm:aFormOrImage x:x y:y
3663
d40999d6cd1e refactored
Michael Beyl <mb@exept.de>
parents: 3535
diff changeset
  1450
    ].
d40999d6cd1e refactored
Michael Beyl <mb@exept.de>
parents: 3535
diff changeset
  1451
!
d40999d6cd1e refactored
Michael Beyl <mb@exept.de>
parents: 3535
diff changeset
  1452
4171
bf0193e5a898 #displayImage for compatibility
Stefan Vogel <sv@exept.de>
parents: 4129
diff changeset
  1453
displayImage:aFormOrImage
bf0193e5a898 #displayImage for compatibility
Stefan Vogel <sv@exept.de>
parents: 4129
diff changeset
  1454
    "draw an image (or form).
bf0193e5a898 #displayImage for compatibility
Stefan Vogel <sv@exept.de>
parents: 4129
diff changeset
  1455
     Provided for ST-80 compatibilty;
bf0193e5a898 #displayImage for compatibility
Stefan Vogel <sv@exept.de>
parents: 4129
diff changeset
  1456
     in ST/X, images are also handled by #displayForm:"
bf0193e5a898 #displayImage for compatibility
Stefan Vogel <sv@exept.de>
parents: 4129
diff changeset
  1457
bf0193e5a898 #displayImage for compatibility
Stefan Vogel <sv@exept.de>
parents: 4129
diff changeset
  1458
    self displayForm:aFormOrImage x:0 y:0
bf0193e5a898 #displayImage for compatibility
Stefan Vogel <sv@exept.de>
parents: 4129
diff changeset
  1459
!
bf0193e5a898 #displayImage for compatibility
Stefan Vogel <sv@exept.de>
parents: 4129
diff changeset
  1460
1654
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1461
displayImage:aFormOrImage at:aPoint
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1462
    "draw an image (or form).
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1463
     Provided for ST-80 compatibilty;
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1464
     in ST/X, images are also handled by #displayForm:"
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1465
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1466
    self displayForm:aFormOrImage x:(aPoint x) y:(aPoint y)
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1467
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1468
    "Modified: 24.4.1997 / 16:02:43 / cg"
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1469
!
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1470
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1471
displayImage:aFormOrImage x:x y:y
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1472
    "draw an image (or form).
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1473
     Provided for ST-80 compatibilty;
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1474
     in ST/X, images are also handled by #displayForm:"
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1475
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1476
    self displayForm:aFormOrImage x:x y:y
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1477
93c6430368d7 added #displayImage for ST-80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1651
diff changeset
  1478
    "Created: 24.4.1997 / 16:03:03 / cg"
726
5400de25657e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 720
diff changeset
  1479
!
5400de25657e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 720
diff changeset
  1480
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1481
displayLineFrom:point1 to:point2
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1482
    "draw a line"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1483
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1484
    self displayLineFromX:(point1 x) y:(point1 y)
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1485
		      toX:(point2 x) y:(point2 y)
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1486
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1487
1506
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1488
displayLineFromX:xStart y:yStart toX:xEnd y:yEnd brush:aForm
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1489
    "draw a line using a brush.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1490
     Here, a slow fallback is used, drawing into a
1506
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1491
     temporary bitmap first, which is then displayed"
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1492
2436
4ef8d33c8951 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2392
diff changeset
  1493
    |deltaX deltaY dx dy px py destX destY p tempForm
1506
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1494
     xMin xMax yMin yMax x1 x2 y1 y2|
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1495
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1496
    xStart < xEnd ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1497
	xMin := xStart.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1498
	xMax := xEnd.
1506
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1499
    ] ifFalse:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1500
	xMin := xEnd.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1501
	xMax := xStart
1506
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1502
    ].
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1503
    yStart < yEnd ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1504
	yMin := yStart.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1505
	yMax := yEnd.
1506
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1506
    ] ifFalse:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1507
	yMin := yEnd.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1508
	yMax := yStart
1506
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1509
    ].
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1510
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1511
    tempForm := Form width:(xMax-xMin+1+aForm width)
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1512
		     height:(yMax-yMin+1+aForm height)
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1513
		     depth:aForm depth
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1514
		     onDevice:device.
7358
f13be4e055c6 #QUALITY by sr
sr
parents: 7344
diff changeset
  1515
    tempForm isNil ifTrue:[^nil].
1506
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1516
    tempForm clear.
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1517
    tempForm paint:(Color colorId:1) on:(Color colorId:0).
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1518
    tempForm function:#or.
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1519
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1520
    ((yStart = yEnd and:[xStart < xEnd])
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1521
    or: [yStart < yEnd]) ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1522
	x1 := xStart. y1 := yStart.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1523
	x2 := xEnd. y2 := yEnd.
1506
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1524
    ] ifFalse:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1525
	x1 := xEnd. y1 := yEnd.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1526
	x2 := xStart. y2 := yStart.
1506
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1527
    ].
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1528
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1529
    x1 := x1 - xMin.  x2 := x2 - xMin.
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1530
    y1 := y1 - yMin.  y2 := y2 - yMin.
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1531
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1532
    destX := x1.
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1533
    destY := y1.
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1534
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1535
    "/ bresenham ...
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1536
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1537
    deltaX := x2 - x1.
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1538
    deltaY := y2 - y1.
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1539
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1540
    dx := deltaX sign.
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1541
    dy := deltaY sign.
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1542
    px := deltaY abs.
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1543
    py := deltaX abs.
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1544
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1545
    tempForm displayForm:aForm x:destX y:destY.
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1546
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1547
    py > px ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1548
	"horizontal"
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1549
	p := py // 2.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1550
	py timesRepeat:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1551
	    destX := destX + dx.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1552
	    (p := p - px) < 0 ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1553
		destY := destY + dy.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1554
		p := p + py
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1555
	    ].
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1556
	    tempForm displayForm:aForm x:destX y:destY.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1557
	]
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1558
    ] ifFalse:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1559
	"vertical"
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1560
	p := px // 2.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1561
	px timesRepeat:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1562
	    destY := destY + dy.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1563
	    (p := p - py) < 0 ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1564
		destX := destX + dx.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1565
		p := p + px
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1566
	    ].
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1567
	    tempForm displayForm:aForm x:destX y:destY
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1568
	]
1506
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1569
    ].
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1570
    self displayForm:tempForm
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1571
		   x:xMin-aForm offset x
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1572
		   y:yMin-aForm offset y.
1506
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1573
    tempForm close
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1574
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1575
    "Modified: 1.4.1997 / 21:29:06 / cg"
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1576
!
1b6c39325902 added lineDraw with a brush.
Claus Gittinger <cg@exept.de>
parents: 1443
diff changeset
  1577
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1578
displayOpaqueString:aString from:start to:stop at:aPoint
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1579
    "draw part of a string - drawing both fg and bg"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1580
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1581
    ^ self displayOpaqueString:aString from:start to:stop x:aPoint x y:aPoint y
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1582
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1583
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1584
displayOpaqueString:aString x:x y:y
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1585
    "draw a string with both fg and bg"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1586
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1587
    self displayOpaqueString:aString from:1 to:(aString size) x:x y:y
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1588
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1589
1647
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1590
displayOpaqueString:aString x:x y:y angle:drawAngle
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1591
    "draw a string along a (possibly non-horizontal) line,
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1592
     drawing both fg and bg pixels.
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1593
     The angle is in degrees, clock-wise, starting with 0 for
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1594
     a horizontal draw.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1595
     Drawing is done by first drawing the string into a temporary bitmap,
1647
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1596
     which is rotated and finally drawn as usual.
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1597
     NOTICE: due to the rotation of the temporary bitmap, this is a slow
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1598
	     operation - not to be used with cillions of strings ..."
1647
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1599
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1600
    self
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1601
	displayString:aString x:x y:y angle:drawAngle opaque:true
1647
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1602
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1603
    "
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1604
     |v|
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1605
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1606
     v := View new.
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1607
     v extent:300@200.
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1608
     v openAndWait.
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1609
     0 to:360 by:45 do:[:a |
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1610
	 v paint:Color black on:Color red.
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1611
	 v displayOpaqueString:'hello world' x:100 y:100 angle:a.
1647
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1612
     ].
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1613
    "
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1614
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1615
    "in contrast to non-opaque draw:
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1616
     |v|
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1617
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1618
     v := View new.
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1619
     v extent:300@200.
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1620
     v openAndWait.
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1621
     0 to:360 by:45 do:[:a |
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1622
	 v paint:Color black on:Color red.
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1623
	 v displayString:'hello world' x:100 y:100 angle:a.
1647
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1624
     ].
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1625
    "
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1626
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1627
    "Modified: 23.4.1997 / 17:50:23 / cg"
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1628
!
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1629
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1630
displayPoint:aPoint
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1631
    "draw a pixel"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1632
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1633
    self displayPointX:(aPoint x) y:(aPoint y)
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1634
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1635
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1636
displayPointX:x y:y
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1637
    "draw a point at x/y"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1638
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1639
    self displayLineFromX:x y:y toX:x y:y
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1640
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1641
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1642
displayRectangle:aRectangle
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1643
    "draw a rectangle"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1644
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1645
    self displayRectangleX:(aRectangle left)
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1646
			 y:(aRectangle top)
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1647
		     width:(aRectangle width)
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1648
		    height:(aRectangle height)
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1649
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1650
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1651
displayRectangleOrigin:origin corner:corner
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1652
    "draw a rectangle"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1653
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1654
    |top left|
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1655
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1656
    left := origin x.
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1657
    top := origin y.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1658
    self displayRectangleX:left y:top
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1659
		     width:(corner x - left)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1660
		    height:(corner y - top)
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  1661
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  1662
    "Modified: 13.4.1996 / 20:58:31 / cg"
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1663
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1664
2069
cf25dd15f04d added #displayRectangleOrigin:extent:
ca
parents: 2032
diff changeset
  1665
displayRectangleOrigin:origin extent:extent
cf25dd15f04d added #displayRectangleOrigin:extent:
ca
parents: 2032
diff changeset
  1666
    "draw a rectangle"
cf25dd15f04d added #displayRectangleOrigin:extent:
ca
parents: 2032
diff changeset
  1667
cf25dd15f04d added #displayRectangleOrigin:extent:
ca
parents: 2032
diff changeset
  1668
    self displayRectangleX:(origin x) y:(origin y)
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1669
		     width:(extent x)
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1670
		    height:(extent y)
2069
cf25dd15f04d added #displayRectangleOrigin:extent:
ca
parents: 2032
diff changeset
  1671
cf25dd15f04d added #displayRectangleOrigin:extent:
ca
parents: 2032
diff changeset
  1672
    "Modified: 13.4.1996 / 20:58:31 / cg"
cf25dd15f04d added #displayRectangleOrigin:extent:
ca
parents: 2032
diff changeset
  1673
!
cf25dd15f04d added #displayRectangleOrigin:extent:
ca
parents: 2032
diff changeset
  1674
4396
bd626d040e1a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4393
diff changeset
  1675
displayRoundRectangleX:left y:top width:width height:height wCorner:wCorn hCorner:hCorn
4930
d464ba6aea9b #displayRoundRectangle:... - fix for X11
Stefan Vogel <sv@exept.de>
parents: 4911
diff changeset
  1676
    |right bottom wC hC wHalf hHalf isWin32|
4396
bd626d040e1a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4393
diff changeset
  1677
4911
aa37e3fa329e round rectangles
Claus Gittinger <cg@exept.de>
parents: 4903
diff changeset
  1678
    "/ BIG KLUDGE WARNING HERE: the code below looks "good" on windows displays;
aa37e3fa329e round rectangles
Claus Gittinger <cg@exept.de>
parents: 4903
diff changeset
  1679
    "/ (if you change anything under Unix, make it X-platform specific.
aa37e3fa329e round rectangles
Claus Gittinger <cg@exept.de>
parents: 4903
diff changeset
  1680
    "/ (there seem to be drawing incompatibilities between Win- and XWorkstation)
aa37e3fa329e round rectangles
Claus Gittinger <cg@exept.de>
parents: 4903
diff changeset
  1681
6371
a5f8a5dd647f class: GraphicsContext
Claus Gittinger <cg@exept.de>
parents: 6272
diff changeset
  1682
    isWin32 := device isWindowsPlatform.
4930
d464ba6aea9b #displayRoundRectangle:... - fix for X11
Stefan Vogel <sv@exept.de>
parents: 4911
diff changeset
  1683
4900
32c51c74c3a4 round rectangle drawing
Claus Gittinger <cg@exept.de>
parents: 4777
diff changeset
  1684
    right := left + width-1.
32c51c74c3a4 round rectangle drawing
Claus Gittinger <cg@exept.de>
parents: 4777
diff changeset
  1685
    bottom := top + height-1.
4396
bd626d040e1a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4393
diff changeset
  1686
bd626d040e1a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4393
diff changeset
  1687
    wC := wCorn.
bd626d040e1a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4393
diff changeset
  1688
    hC := hCorn.
bd626d040e1a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4393
diff changeset
  1689
4911
aa37e3fa329e round rectangles
Claus Gittinger <cg@exept.de>
parents: 4903
diff changeset
  1690
    self scale = 1 ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1691
	wHalf := wC // 2.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1692
	hHalf := hC // 2.
4911
aa37e3fa329e round rectangles
Claus Gittinger <cg@exept.de>
parents: 4903
diff changeset
  1693
    ] ifFalse:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1694
	wHalf := wC / 2.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1695
	hHalf := hC / 2.
4911
aa37e3fa329e round rectangles
Claus Gittinger <cg@exept.de>
parents: 4903
diff changeset
  1696
    ].
4396
bd626d040e1a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4393
diff changeset
  1697
bd626d040e1a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4393
diff changeset
  1698
    "top left arc"
bd626d040e1a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4393
diff changeset
  1699
    self displayArcX:left y:top width:wC height:hC from:90 angle:90.
bd626d040e1a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4393
diff changeset
  1700
bd626d040e1a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4393
diff changeset
  1701
    "top right arc"
4902
d1511e0c9adb win32 fixes ???
Claus Gittinger <cg@exept.de>
parents: 4901
diff changeset
  1702
    self displayArcX:(right - wC) y:top width:wC height:hC from:0 angle:90.
4396
bd626d040e1a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4393
diff changeset
  1703
4911
aa37e3fa329e round rectangles
Claus Gittinger <cg@exept.de>
parents: 4903
diff changeset
  1704
    "bottom right arc"
4930
d464ba6aea9b #displayRoundRectangle:... - fix for X11
Stefan Vogel <sv@exept.de>
parents: 4911
diff changeset
  1705
    (isWin32 and:[self scale = 1]) ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1706
	self displayArcX:(right - wC+1) y:(bottom - hC+1) width:wC height:hC from:270 angle:90.
4911
aa37e3fa329e round rectangles
Claus Gittinger <cg@exept.de>
parents: 4903
diff changeset
  1707
    ] ifFalse:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1708
	self displayArcX:(right - wC) y:(bottom - hC) width:wC height:hC from:270 angle:90.
4911
aa37e3fa329e round rectangles
Claus Gittinger <cg@exept.de>
parents: 4903
diff changeset
  1709
    ].
aa37e3fa329e round rectangles
Claus Gittinger <cg@exept.de>
parents: 4903
diff changeset
  1710
aa37e3fa329e round rectangles
Claus Gittinger <cg@exept.de>
parents: 4903
diff changeset
  1711
    "bottom left arc"
aa37e3fa329e round rectangles
Claus Gittinger <cg@exept.de>
parents: 4903
diff changeset
  1712
    self displayArcX:left y:(bottom - hC) width:wC height:hC from:180 angle:90.
aa37e3fa329e round rectangles
Claus Gittinger <cg@exept.de>
parents: 4903
diff changeset
  1713
aa37e3fa329e round rectangles
Claus Gittinger <cg@exept.de>
parents: 4903
diff changeset
  1714
    "top line"
4940
cbac16cbe259 dont draw round-rectangle points twice (in case of xoring)
Claus Gittinger <cg@exept.de>
parents: 4930
diff changeset
  1715
    self displayLineFromX:(left + wHalf) y:top toX:(right - wHalf-1) y:top.
4911
aa37e3fa329e round rectangles
Claus Gittinger <cg@exept.de>
parents: 4903
diff changeset
  1716
aa37e3fa329e round rectangles
Claus Gittinger <cg@exept.de>
parents: 4903
diff changeset
  1717
    "left line"
4940
cbac16cbe259 dont draw round-rectangle points twice (in case of xoring)
Claus Gittinger <cg@exept.de>
parents: 4930
diff changeset
  1718
    self displayLineFromX:left y:(top + hHalf - 1) toX:left y:(bottom - hHalf - 2).
4911
aa37e3fa329e round rectangles
Claus Gittinger <cg@exept.de>
parents: 4903
diff changeset
  1719
4396
bd626d040e1a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4393
diff changeset
  1720
    "bottom line"
4911
aa37e3fa329e round rectangles
Claus Gittinger <cg@exept.de>
parents: 4903
diff changeset
  1721
    self displayLineFromX:(left + wHalf-1) y:bottom
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1722
		      toX:(right - wHalf ) y:bottom.
4396
bd626d040e1a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4393
diff changeset
  1723
bd626d040e1a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4393
diff changeset
  1724
    "right line"
4902
d1511e0c9adb win32 fixes ???
Claus Gittinger <cg@exept.de>
parents: 4901
diff changeset
  1725
    self displayLineFromX:right y:(top + hHalf) toX:right y:(bottom - hHalf).
4396
bd626d040e1a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4393
diff changeset
  1726
bd626d040e1a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4393
diff changeset
  1727
bd626d040e1a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4393
diff changeset
  1728
    "
bd626d040e1a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4393
diff changeset
  1729
     |v|
bd626d040e1a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4393
diff changeset
  1730
bd626d040e1a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4393
diff changeset
  1731
     (v := View new) extent:200@200; openAndWait.
bd626d040e1a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4393
diff changeset
  1732
     v displayRoundRectangleX:10 y:10 width:100 height:100 wCorner:20 hCorner:20
bd626d040e1a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4393
diff changeset
  1733
    "
bd626d040e1a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4393
diff changeset
  1734
!
bd626d040e1a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4393
diff changeset
  1735
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1736
displayString:aString at:aPoint
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1737
    "draw a string - drawing fg only"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1738
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1739
    self displayString:aString x:aPoint x y:aPoint y
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1740
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1741
2460
a1c5c2053f42 added #displayString:centeredAtX:y:
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1742
displayString:aString centeredAtX:x y:y
a1c5c2053f42 added #displayString:centeredAtX:y:
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1743
    "draw a string - drawing fg only"
a1c5c2053f42 added #displayString:centeredAtX:y:
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1744
a1c5c2053f42 added #displayString:centeredAtX:y:
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1745
    |w h|
a1c5c2053f42 added #displayString:centeredAtX:y:
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1746
a1c5c2053f42 added #displayString:centeredAtX:y:
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1747
    w := aString widthOn:self.
a1c5c2053f42 added #displayString:centeredAtX:y:
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1748
    h := aString heightOn:self.
a1c5c2053f42 added #displayString:centeredAtX:y:
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1749
    self displayString:aString x:x-(w/2) y:y-(h/2)
a1c5c2053f42 added #displayString:centeredAtX:y:
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1750
!
a1c5c2053f42 added #displayString:centeredAtX:y:
Claus Gittinger <cg@exept.de>
parents: 2436
diff changeset
  1751
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1752
displayString:aString from:start to:stop at:aPoint
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1753
    "draw part of a string - drawing fg only"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1754
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1755
    ^ self displayString:aString from:start to:stop x:aPoint x y:aPoint y
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1756
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1757
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1758
displayString:aString x:x y:y
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1759
    "draw a string - drawing fg only"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1760
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1761
    self displayString:aString from:1 to:(aString size) x:x y:y
726
5400de25657e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 720
diff changeset
  1762
!
5400de25657e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 720
diff changeset
  1763
1641
b7c128be3394 added #displayString:x:y:angle:
Claus Gittinger <cg@exept.de>
parents: 1506
diff changeset
  1764
displayString:aString x:x y:y angle:drawAngle
b7c128be3394 added #displayString:x:y:angle:
Claus Gittinger <cg@exept.de>
parents: 1506
diff changeset
  1765
    "draw a string along a (possibly non-horizontal) line - drawing fg only.
b7c128be3394 added #displayString:x:y:angle:
Claus Gittinger <cg@exept.de>
parents: 1506
diff changeset
  1766
     The angle is in degrees, clock-wise, starting with 0 for
b7c128be3394 added #displayString:x:y:angle:
Claus Gittinger <cg@exept.de>
parents: 1506
diff changeset
  1767
     a horizontal draw.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1768
     Drawing is done by first drawing the string into a temporary bitmap,
1641
b7c128be3394 added #displayString:x:y:angle:
Claus Gittinger <cg@exept.de>
parents: 1506
diff changeset
  1769
     which is rotated and finally drawn as usual.
1647
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1770
     NOTICE: due to the rotation of the temporary bitmap, this is a slow
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1771
	     operation - not to be used with cillions of strings ..."
1647
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1772
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1773
    self
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1774
	displayString:aString x:x y:y angle:drawAngle opaque:false
1647
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1775
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1776
    "
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1777
     |v|
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1778
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1779
     v := View new.
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1780
     v extent:300@200.
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1781
     v openAndWait.
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1782
     0 to:360 by:90 do:[:a |
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1783
	 v paint:Color black.
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1784
	 v displayString:'hello world' x:100 y:100 angle:a.
1647
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1785
     ].
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1786
    "
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1787
    "
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1788
     |v|
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1789
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1790
     v := View new.
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1791
     v extent:400@400.
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1792
     v openAndWait.
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1793
     0 to:360 by:5 do:[:a |
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1794
	 v paint:Color black.
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  1795
	 v displayString:'.........hello' x:200 y:200 angle:a.
1647
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1796
     ].
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1797
    "
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1798
    "
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1799
     |v|
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1800
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1801
     v := View new.
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1802
     v extent:200@100.
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1803
     v openAndWait.
1651
85f2b72134f1 can now also draw opaqueStrings with arbitrary angle
Claus Gittinger <cg@exept.de>
parents: 1647
diff changeset
  1804
     v displayString:' hello' x:90 y:50 angle:0.
85f2b72134f1 can now also draw opaqueStrings with arbitrary angle
Claus Gittinger <cg@exept.de>
parents: 1647
diff changeset
  1805
     v displayString:' hello' x:90 y:50 angle:45.
85f2b72134f1 can now also draw opaqueStrings with arbitrary angle
Claus Gittinger <cg@exept.de>
parents: 1647
diff changeset
  1806
     v displayString:' hello' x:90 y:50 angle:90.
85f2b72134f1 can now also draw opaqueStrings with arbitrary angle
Claus Gittinger <cg@exept.de>
parents: 1647
diff changeset
  1807
     v displayString:' hello' x:90 y:50 angle:180.
85f2b72134f1 can now also draw opaqueStrings with arbitrary angle
Claus Gittinger <cg@exept.de>
parents: 1647
diff changeset
  1808
     v displayString:' hello' x:90 y:50 angle:270.
1647
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1809
    "
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1810
    "
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1811
     |v|
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1812
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1813
     v := View new.
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1814
     v extent:200@100.
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1815
     v openAndWait.
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1816
     v displayString:'hello' x:50 y:50 angle:0.
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1817
     v displayString:'hello' x:50 y:50 angle:45.
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1818
     v displayString:'hello' x:50 y:50 angle:90.
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1819
     v displayString:'hello' x:50 y:50 angle:135.
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1820
     v displayString:'hello' x:50 y:50 angle:180.
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1821
     v displayString:'hello' x:50 y:50 angle:225.
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1822
     v displayString:'hello' x:50 y:50 angle:270.
1651
85f2b72134f1 can now also draw opaqueStrings with arbitrary angle
Claus Gittinger <cg@exept.de>
parents: 1647
diff changeset
  1823
     v displayString:'hello' x:50 y:50 angle:315.
1647
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1824
    "
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1825
1651
85f2b72134f1 can now also draw opaqueStrings with arbitrary angle
Claus Gittinger <cg@exept.de>
parents: 1647
diff changeset
  1826
    "Modified: 24.4.1997 / 12:51:25 / cg"
1647
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1827
!
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1828
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1829
displayString:aString x:x y:y angle:drawAngle opaque:opaque
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1830
    "common code to draw a string along a (possibly non-horizontal) line.
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1831
     The angle is in degrees, clock-wise, starting with 0 for
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1832
     a horizontal draw.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1833
     Drawing is done by first drawing the string into a temporary bitmap,
1647
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1834
     which is rotated and finally drawn as usual.
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1835
     NOTICE: due to the rotation of the temporary bitmap, this is a slow
2032
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1836
             operation - not to be used with cillions of strings ...
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1837
     CAVEAT: if the string is not a real string (i.e. a LabelAndIcon),
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1838
             this can (currently) only be done opaque"
1641
b7c128be3394 added #displayString:x:y:angle:
Claus Gittinger <cg@exept.de>
parents: 1506
diff changeset
  1839
3668
1de1036132ce fillRectangleX with color arg.
Michael Beyl <mb@exept.de>
parents: 3663
diff changeset
  1840
    |angle tempForm tempImage w h ascent descent a xN yN p r
1651
85f2b72134f1 can now also draw opaqueStrings with arbitrary angle
Claus Gittinger <cg@exept.de>
parents: 1647
diff changeset
  1841
     dX dY sin cos m|
1641
b7c128be3394 added #displayString:x:y:angle:
Claus Gittinger <cg@exept.de>
parents: 1506
diff changeset
  1842
b7c128be3394 added #displayString:x:y:angle:
Claus Gittinger <cg@exept.de>
parents: 1506
diff changeset
  1843
    angle := drawAngle.
b7c128be3394 added #displayString:x:y:angle:
Claus Gittinger <cg@exept.de>
parents: 1506
diff changeset
  1844
    angle >= 360 ifTrue:[
2032
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1845
        angle := angle - (((angle // 360)) * 360)
1641
b7c128be3394 added #displayString:x:y:angle:
Claus Gittinger <cg@exept.de>
parents: 1506
diff changeset
  1846
    ] ifFalse:[
2032
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1847
        angle < 0 ifTrue:[
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1848
            angle := angle - (((angle // 360)) * 360).
4129
20e9c7b506df angular drawing
Claus Gittinger <cg@exept.de>
parents: 4107
diff changeset
  1849
            angle := angle + 360.
20e9c7b506df angular drawing
Claus Gittinger <cg@exept.de>
parents: 4107
diff changeset
  1850
            angle >= 360 ifTrue:[
20e9c7b506df angular drawing
Claus Gittinger <cg@exept.de>
parents: 4107
diff changeset
  1851
                angle := angle - (((angle // 360)) * 360)
20e9c7b506df angular drawing
Claus Gittinger <cg@exept.de>
parents: 4107
diff changeset
  1852
            ]
2032
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1853
        ].
1641
b7c128be3394 added #displayString:x:y:angle:
Claus Gittinger <cg@exept.de>
parents: 1506
diff changeset
  1854
    ].
b7c128be3394 added #displayString:x:y:angle:
Claus Gittinger <cg@exept.de>
parents: 1506
diff changeset
  1855
b7c128be3394 added #displayString:x:y:angle:
Claus Gittinger <cg@exept.de>
parents: 1506
diff changeset
  1856
    angle = 0 ifTrue:[
2032
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1857
        opaque ifTrue:[
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1858
            ^ self displayOpaqueString:aString x:x y:y
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1859
        ].
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1860
        ^ self displayString:aString x:x y:y
1641
b7c128be3394 added #displayString:x:y:angle:
Claus Gittinger <cg@exept.de>
parents: 1506
diff changeset
  1861
    ].
b7c128be3394 added #displayString:x:y:angle:
Claus Gittinger <cg@exept.de>
parents: 1506
diff changeset
  1862
3717
8ab117634269 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  1863
    font := font onDevice:device.
3668
1de1036132ce fillRectangleX with color arg.
Michael Beyl <mb@exept.de>
parents: 3663
diff changeset
  1864
    ascent := font ascent.
3717
8ab117634269 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  1865
2032
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1866
    aString isString ifTrue:[
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1867
        "/ a real string;
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1868
        "/ do it in a monochrome form (for speed)
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1869
4954
e54b6bc479bf angular string drawing fixed (sigh: sin wants radians)
Claus Gittinger <cg@exept.de>
parents: 4940
diff changeset
  1870
        w := font widthOf:aString.
2032
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1871
        h := font height.
3668
1de1036132ce fillRectangleX with color arg.
Michael Beyl <mb@exept.de>
parents: 3663
diff changeset
  1872
        descent := h - ascent.
1641
b7c128be3394 added #displayString:x:y:angle:
Claus Gittinger <cg@exept.de>
parents: 1506
diff changeset
  1873
7358
f13be4e055c6 #QUALITY by sr
sr
parents: 7344
diff changeset
  1874
        tempForm := Form width:w height:h depth:1 onDevice:device.
f13be4e055c6 #QUALITY by sr
sr
parents: 7344
diff changeset
  1875
        tempForm isNil ifTrue:[^ self].
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1876
        tempForm paint:(Color colorId:1) on:(Color colorId:0).
2032
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1877
        tempForm clear.
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1878
        tempForm font:font.
3668
1de1036132ce fillRectangleX with color arg.
Michael Beyl <mb@exept.de>
parents: 3663
diff changeset
  1879
        tempForm displayString:aString x:0 y:ascent.
2032
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1880
    ] ifFalse:[
4954
e54b6bc479bf angular string drawing fixed (sigh: sin wants radians)
Claus Gittinger <cg@exept.de>
parents: 4940
diff changeset
  1881
        "/ something weird (labelAndIcon ..)
2032
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1882
        "/ do it in a deep form.
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1883
        "/ CAVEAT: this can only be done opaque ...
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1884
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1885
        w := aString widthOn:self.
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1886
        h := aString heightOn:self.
3668
1de1036132ce fillRectangleX with color arg.
Michael Beyl <mb@exept.de>
parents: 3663
diff changeset
  1887
        descent := 0.
1de1036132ce fillRectangleX with color arg.
Michael Beyl <mb@exept.de>
parents: 3663
diff changeset
  1888
"/        ascent := font ascent max:(h // 2).
1de1036132ce fillRectangleX with color arg.
Michael Beyl <mb@exept.de>
parents: 3663
diff changeset
  1889
"/        descent := (h - font ascent) max:(h // 2).
1641
b7c128be3394 added #displayString:x:y:angle:
Claus Gittinger <cg@exept.de>
parents: 1506
diff changeset
  1890
7358
f13be4e055c6 #QUALITY by sr
sr
parents: 7344
diff changeset
  1891
        tempForm := Form width:w height:h depth:(device depth) onDevice:device.
f13be4e055c6 #QUALITY by sr
sr
parents: 7344
diff changeset
  1892
        tempForm isNil ifTrue:[^ self].
2032
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1893
        tempForm paint:bgPaint.
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1894
        tempForm fillRectangleX:0 y:0 width:w height:h.
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1895
        tempForm paint:paint on:bgPaint.
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1896
        tempForm font:font.
3668
1de1036132ce fillRectangleX with color arg.
Michael Beyl <mb@exept.de>
parents: 3663
diff changeset
  1897
        aString displayOn:tempForm x:0 y:ascent opaque:true.
2032
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1898
    ].
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1899
    tempImage := tempForm asImage rotated:angle.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1900
1651
85f2b72134f1 can now also draw opaqueStrings with arbitrary angle
Claus Gittinger <cg@exept.de>
parents: 1647
diff changeset
  1901
    opaque ifTrue:[
2032
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1902
        m := ImageMask width:w height:h.
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1903
        m bits:(ByteArray new:(h * m bytesPerRow) withAll:16rFF).
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1904
        m := m rotated:angle
1651
85f2b72134f1 can now also draw opaqueStrings with arbitrary angle
Claus Gittinger <cg@exept.de>
parents: 1647
diff changeset
  1905
    ].
85f2b72134f1 can now also draw opaqueStrings with arbitrary angle
Claus Gittinger <cg@exept.de>
parents: 1647
diff changeset
  1906
2032
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1907
    "/ compute final position of rotated form
1641
b7c128be3394 added #displayString:x:y:angle:
Claus Gittinger <cg@exept.de>
parents: 1506
diff changeset
  1908
    "/ adjust position for baseline.
b7c128be3394 added #displayString:x:y:angle:
Claus Gittinger <cg@exept.de>
parents: 1506
diff changeset
  1909
    angle = 90 ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1910
        xN := x - descent.
2032
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1911
        yN := y.
1641
b7c128be3394 added #displayString:x:y:angle:
Claus Gittinger <cg@exept.de>
parents: 1506
diff changeset
  1912
    ] ifFalse:[
2032
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1913
        angle = 180 ifTrue:[
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1914
            xN := x - w.
3668
1de1036132ce fillRectangleX with color arg.
Michael Beyl <mb@exept.de>
parents: 3663
diff changeset
  1915
            yN := y - descent "+ h - ascent".
2032
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1916
        ] ifFalse:[
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1917
            angle = 270 ifTrue:[
3668
1de1036132ce fillRectangleX with color arg.
Michael Beyl <mb@exept.de>
parents: 3663
diff changeset
  1918
                xN := x - ascent.
2032
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1919
                yN := y - w.
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1920
            ] ifFalse:[
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1921
                "/ sigh: since the new image has different dimensions,
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1922
                "/ the computation is somewhat more difficult here.
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1923
                "/ remember: the image has been rotated around its center,
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1924
                "/ then shifted towards the top-left origin.
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1925
                p := (w@h) / 2.
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1926
                r := p r.
4107
6ff7c076616b Use #theta inseat of obsolete #angle.
Stefan Vogel <sv@exept.de>
parents: 4071
diff changeset
  1927
                a := p theta.
4954
e54b6bc479bf angular string drawing fixed (sigh: sin wants radians)
Claus Gittinger <cg@exept.de>
parents: 4940
diff changeset
  1928
                sin := angle degreesToRadians sin.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  1929
                cos := angle degreesToRadians cos.
1647
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1930
2032
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1931
                angle < 90 ifTrue:[
3668
1de1036132ce fillRectangleX with color arg.
Michael Beyl <mb@exept.de>
parents: 3663
diff changeset
  1932
                    dX := descent * sin.
1de1036132ce fillRectangleX with color arg.
Michael Beyl <mb@exept.de>
parents: 3663
diff changeset
  1933
                    dY := ascent * cos.
2032
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1934
                    xN := x - dX.
4954
e54b6bc479bf angular string drawing fixed (sigh: sin wants radians)
Claus Gittinger <cg@exept.de>
parents: 4940
diff changeset
  1935
                    yN := y - dY.
2032
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1936
                ] ifFalse:[
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1937
                    angle < 180 ifTrue:[
3668
1de1036132ce fillRectangleX with color arg.
Michael Beyl <mb@exept.de>
parents: 3663
diff changeset
  1938
                        dX := ascent * sin.
1de1036132ce fillRectangleX with color arg.
Michael Beyl <mb@exept.de>
parents: 3663
diff changeset
  1939
                        dY := descent * cos.
2032
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1940
                        xN := x + dX - (tempImage width).
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1941
                        yN := y + dY.
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1942
                    ] ifFalse:[
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1943
                        angle < 270 ifTrue:[
3668
1de1036132ce fillRectangleX with color arg.
Michael Beyl <mb@exept.de>
parents: 3663
diff changeset
  1944
                            dX := descent * sin.
1de1036132ce fillRectangleX with color arg.
Michael Beyl <mb@exept.de>
parents: 3663
diff changeset
  1945
                            dY := ascent * cos.
2032
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1946
                            xN := x - dX - (tempImage width).
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1947
                            yN := y - dY - (tempImage height)
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1948
                        ] ifFalse:[
3668
1de1036132ce fillRectangleX with color arg.
Michael Beyl <mb@exept.de>
parents: 3663
diff changeset
  1949
                            dX := ascent * sin.
1de1036132ce fillRectangleX with color arg.
Michael Beyl <mb@exept.de>
parents: 3663
diff changeset
  1950
                            dY := descent * cos.
2032
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1951
                            xN := x + dX.
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1952
                            yN := y + dY - (tempImage height).
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1953
                        ]
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1954
                    ]
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1955
                ].
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1956
                tempImage mask:nil.
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1957
            ]
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1958
        ].
1641
b7c128be3394 added #displayString:x:y:angle:
Claus Gittinger <cg@exept.de>
parents: 1506
diff changeset
  1959
    ].
2032
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1960
1647
2be7ad21d324 displayString - with angle finished
Claus Gittinger <cg@exept.de>
parents: 1643
diff changeset
  1961
    opaque ifTrue:[
2032
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1962
        p := paint.
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1963
        self paint:bgPaint.
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1964
        self displayForm:m x:xN y:yN.
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1965
        self paint:p.
1651
85f2b72134f1 can now also draw opaqueStrings with arbitrary angle
Claus Gittinger <cg@exept.de>
parents: 1647
diff changeset
  1966
    ].
85f2b72134f1 can now also draw opaqueStrings with arbitrary angle
Claus Gittinger <cg@exept.de>
parents: 1647
diff changeset
  1967
    self displayForm:tempImage x:xN y:yN.
1641
b7c128be3394 added #displayString:x:y:angle:
Claus Gittinger <cg@exept.de>
parents: 1506
diff changeset
  1968
2032
cc11a2c3918d partial fix for angleDrawing of non-strings (with labelAndIcons)
Claus Gittinger <cg@exept.de>
parents: 2031
diff changeset
  1969
    "Modified: / 29.1.1998 / 13:23:23 / cg"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1970
! !
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1971
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1972
!GraphicsContext methodsFor:'drawing in device coordinates'!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1973
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1974
displayDeviceLineFromX:x1 y:y1 toX:x2 y:y2
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1975
    "draw a line in device coordinates"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1976
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1977
    |sav|
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1978
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1979
    sav := transformation.
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1980
    transformation := nil.
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1981
    self displayLineFromX:x1 y:y1 toX:x2 y:y2.
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1982
    transformation := sav
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1983
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1984
4393
797ab4781c01 code cleanup
Claus Gittinger <cg@exept.de>
parents: 4392
diff changeset
  1985
displayDeviceRectangleX:x y:y width:w height:h
797ab4781c01 code cleanup
Claus Gittinger <cg@exept.de>
parents: 4392
diff changeset
  1986
    "draw a rectangle in device coordinates"
797ab4781c01 code cleanup
Claus Gittinger <cg@exept.de>
parents: 4392
diff changeset
  1987
797ab4781c01 code cleanup
Claus Gittinger <cg@exept.de>
parents: 4392
diff changeset
  1988
    |sav|
797ab4781c01 code cleanup
Claus Gittinger <cg@exept.de>
parents: 4392
diff changeset
  1989
797ab4781c01 code cleanup
Claus Gittinger <cg@exept.de>
parents: 4392
diff changeset
  1990
    sav := transformation.
797ab4781c01 code cleanup
Claus Gittinger <cg@exept.de>
parents: 4392
diff changeset
  1991
    transformation := nil.
797ab4781c01 code cleanup
Claus Gittinger <cg@exept.de>
parents: 4392
diff changeset
  1992
    self displayRectangleX:x y:y width:w height:h.
797ab4781c01 code cleanup
Claus Gittinger <cg@exept.de>
parents: 4392
diff changeset
  1993
    transformation := sav
797ab4781c01 code cleanup
Claus Gittinger <cg@exept.de>
parents: 4392
diff changeset
  1994
!
797ab4781c01 code cleanup
Claus Gittinger <cg@exept.de>
parents: 4392
diff changeset
  1995
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1996
fillDeviceRectangleX:x y:y width:w height:h
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1997
    "fill a rectangle with current paint color (device coordinates)"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1998
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  1999
    |sav|
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2000
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2001
    sav := transformation.
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2002
    transformation := nil.
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2003
    self fillRectangleX:x y:y width:w height:h.
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2004
    transformation := sav
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2005
! !
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2006
713
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2007
!GraphicsContext methodsFor:'edge drawing'!
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2008
4215
8842241e489d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4171
diff changeset
  2009
drawEdgesForX:x y:y width:w height:h level:l
8842241e489d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4171
diff changeset
  2010
    "draw 3D edges into a rectangle"
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2011
    self
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2012
	drawEdgesForX:x y:y width:w height:h level:l
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2013
	shadow:self blackColor light:self whiteColor
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2014
	halfShadow:nil halfLight:nil
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2015
	style:nil
4215
8842241e489d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4171
diff changeset
  2016
!
8842241e489d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4171
diff changeset
  2017
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2018
drawEdgesForX:x y:y width:w height:h level:lvl
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2019
		shadow:shadowColor light:lightColor
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2020
		halfShadow:halfShadowColor halfLight:halfLightColor
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2021
		style:edgeStyle
713
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2022
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2023
    "draw 3D edges into a rectangle"
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2024
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2025
    |topLeftFg botRightFg topLeftHalfFg botRightHalfFg
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2026
     count "{ Class: SmallInteger }"
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2027
     r
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2028
     b
713
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2029
     xi    "{ Class: SmallInteger }"
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2030
     yi    "{ Class: SmallInteger }"
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2031
     run paint|
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2032
6535
163c6d470624 class: GraphicsContext
Claus Gittinger <cg@exept.de>
parents: 6387
diff changeset
  2033
    count := lvl.
713
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2034
    (count < 0) ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2035
	topLeftFg := shadowColor.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2036
	botRightFg := lightColor.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2037
	topLeftHalfFg := halfShadowColor.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2038
	botRightHalfFg := halfLightColor.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2039
	count := count negated
713
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2040
    ] ifFalse:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2041
	topLeftFg := lightColor.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2042
	botRightFg := shadowColor.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2043
	topLeftHalfFg := halfLightColor.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2044
	botRightHalfFg := halfShadowColor.
713
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2045
    ].
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2046
    topLeftHalfFg isNil ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2047
	topLeftHalfFg := topLeftFg
713
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2048
    ].
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2049
    botRightHalfFg isNil ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2050
	botRightHalfFg := botRightFg
713
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2051
    ].
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2052
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2053
    r := x + w - 1. "right"
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2054
    b := y + h - 1. "bottom"
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2055
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2056
    self lineWidth:0.
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2057
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2058
    "top and left edges"
2255
d53b5e22b82b added edgeStyle: #softWin95 (draws grey)
Claus Gittinger <cg@exept.de>
parents: 2069
diff changeset
  2059
    ((edgeStyle == #soft or:[edgeStyle == #softWin95]) and:["l" count > 0]) ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2060
	paint := topLeftHalfFg
713
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2061
    ] ifFalse:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2062
	paint := topLeftFg
713
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2063
    ].
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2064
    self paint:paint.
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2065
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2066
    0 to:(count - 1) do:[:i |
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2067
	run := y + i.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2068
	run < b ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2069
	    self displayDeviceLineFromX:x y:run toX:r y:run. "top"
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2070
	].
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2071
	run := x + i.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2072
	self displayDeviceLineFromX:run y:y toX:run y:b  "left"
713
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2073
    ].
2255
d53b5e22b82b added edgeStyle: #softWin95 (draws grey)
Claus Gittinger <cg@exept.de>
parents: 2069
diff changeset
  2074
    (edgeStyle == #soft or:[edgeStyle == #softWin95]) ifTrue:[
713
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2075
"
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2076
	self paint:topLeftFg.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2077
	self displayDeviceLineFromX:x y:y toX:r y:y.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2078
	self displayDeviceLineFromX:x y:y toX:x y:b
713
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2079
"
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2080
	(lvl > 1) ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2081
	    edgeStyle == #softWin95 ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2082
		self paint:(Color veryLightGray).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2083
	    ] ifFalse:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2084
		(lvl > 2 and:[edgeStyle == #soft]) ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2085
		    self paint:(device blackColor).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2086
		] ifFalse:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2087
		    self paint:halfLightColor.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2088
		]
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2089
	    ].
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2090
	    self displayDeviceLineFromX:x y:y toX:r y:y.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2091
	    self displayDeviceLineFromX:x y:y toX:x y:b.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2092
	]
713
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2093
    ].
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2094
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2095
    xi := x + 1.
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2096
    yi := y + 1.
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2097
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2098
"/ does not look good
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2099
"/ style == #st80 iftrue:[
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2100
"/  yi := yi + 1
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2101
"/ ].
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2102
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2103
    "bottom and right edges"
2255
d53b5e22b82b added edgeStyle: #softWin95 (draws grey)
Claus Gittinger <cg@exept.de>
parents: 2069
diff changeset
  2104
    ((edgeStyle == #soft or:[edgeStyle == #softWin95])
d53b5e22b82b added edgeStyle: #softWin95 (draws grey)
Claus Gittinger <cg@exept.de>
parents: 2069
diff changeset
  2105
    "new:" and:[count > 1]) ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2106
	paint := botRightHalfFg
713
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2107
    ] ifFalse:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2108
	paint := botRightFg
713
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2109
    ].
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2110
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2111
    self paint:paint.
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2112
    0 to:(count - 1) do:[:i |
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2113
	run := b - i.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2114
	run > y ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2115
	    self displayDeviceLineFromX:xi-1 y:run toX:r y:run. "bottom"
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2116
	].
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2117
	run := r - i.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2118
	self displayDeviceLineFromX:run y:yi-1 toX:run y:b.  "right"
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2119
	xi := xi + 1.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2120
	yi := yi + 1
713
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2121
    ].
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2122
    ((edgeStyle == #soft or:[edgeStyle == #softWin95])
6535
163c6d470624 class: GraphicsContext
Claus Gittinger <cg@exept.de>
parents: 6387
diff changeset
  2123
    and:[lvl > 1]) ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2124
	self paint:(device blackColor) "shadowColor".
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2125
	self displayDeviceLineFromX:x y:b toX:r y:b.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2126
	self displayDeviceLineFromX:r y:y toX:r y:b
1443
67acc199f123 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1431
diff changeset
  2127
    ].
67acc199f123 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1431
diff changeset
  2128
67acc199f123 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1431
diff changeset
  2129
    self edgeDrawn:#all
67acc199f123 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1431
diff changeset
  2130
2273
bf00fcc5a526 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2255
diff changeset
  2131
    "Modified: / 24.8.1998 / 18:23:02 / cg"
1443
67acc199f123 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1431
diff changeset
  2132
!
713
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2133
1443
67acc199f123 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1431
diff changeset
  2134
edgeDrawn:whichOne
67acc199f123 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1431
diff changeset
  2135
    "a redefinable hook for views which like to draw
67acc199f123 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1431
diff changeset
  2136
     over their edges (some checkToggles do).
67acc199f123 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1431
diff changeset
  2137
     Nothing done here."
67acc199f123 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1431
diff changeset
  2138
67acc199f123 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1431
diff changeset
  2139
    "Created: 7.3.1997 / 17:59:07 / cg"
713
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2140
! !
c23f1d15b4cb lifted edgeDrawing method
Claus Gittinger <cg@exept.de>
parents: 707
diff changeset
  2141
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2142
!GraphicsContext methodsFor:'filling'!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2143
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2144
fillArc:origin radius:r from:startAngle angle:angle
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2145
    "draw a filled arc around a point"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2146
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2147
    |d|
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2148
    d := 2 * r.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2149
    self
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2150
	fillArcX:(origin x - r)
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  2151
	       y:(origin y - r)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  2152
	   width:d
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  2153
	  height:d
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  2154
	    from:startAngle
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  2155
	   angle:angle
653
0ad3de022f8b fill/drawArc..w:h:.. renamed to ...width:height:...
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
  2156
0ad3de022f8b fill/drawArc..w:h:.. renamed to ...width:height:...
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
  2157
    "Modified: 8.5.1996 / 08:41:54 / cg"
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2158
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2159
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2160
fillArcIn:aRectangle from:startAngle angle:angle
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2161
    "draw a filled arc in a box"
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2162
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2163
    self
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  2164
	fillArcX:(aRectangle left)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  2165
	       y:(aRectangle top)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  2166
	   width:(aRectangle width)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  2167
	  height:(aRectangle height)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  2168
	    from:startAngle
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  2169
	   angle:angle
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2170
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2171
    "Created: 13.4.1996 / 20:56:03 / cg"
653
0ad3de022f8b fill/drawArc..w:h:.. renamed to ...width:height:...
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
  2172
    "Modified: 8.5.1996 / 08:42:13 / cg"
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2173
!
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2174
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2175
fillArcOrigin:origin corner:corner from:startAngle angle:angle
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2176
    "draw a filled arc in a box"
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2177
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2178
    |left top right bot|
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2179
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2180
    left := origin x.
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2181
    top := origin y.
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2182
    right := corner x.
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2183
    bot := corner y.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2184
    self
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2185
	fillArcX:left
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  2186
	y:top
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2187
	width:(right - left + 1)
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  2188
	height:(bot - top + 1)
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2189
	from:startAngle
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  2190
	angle:angle
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2191
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2192
    "Created: 13.4.1996 / 20:56:56 / cg"
653
0ad3de022f8b fill/drawArc..w:h:.. renamed to ...width:height:...
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
  2193
    "Modified: 8.5.1996 / 08:42:23 / cg"
0ad3de022f8b fill/drawArc..w:h:.. renamed to ...width:height:...
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
  2194
!
0ad3de022f8b fill/drawArc..w:h:.. renamed to ...width:height:...
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
  2195
0ad3de022f8b fill/drawArc..w:h:.. renamed to ...width:height:...
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
  2196
fillArcX:x y:y width:w height:h from:startAngle to:endAngle
0ad3de022f8b fill/drawArc..w:h:.. renamed to ...width:height:...
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
  2197
    "draw a filled arc in a box, given startAngle and endAngle."
0ad3de022f8b fill/drawArc..w:h:.. renamed to ...width:height:...
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
  2198
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2199
    self
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2200
	fillArcX:x
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  2201
	       y:y
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  2202
	   width:w
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  2203
	  height:h
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  2204
	    from:startAngle
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  2205
	   angle:(endAngle - startAngle)
653
0ad3de022f8b fill/drawArc..w:h:.. renamed to ...width:height:...
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
  2206
0ad3de022f8b fill/drawArc..w:h:.. renamed to ...width:height:...
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
  2207
    "Created: 8.5.1996 / 08:52:41 / cg"
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2208
!
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2209
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2210
fillCircle:aPoint radius:aNumber
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2211
    "draw a filled circle around aPoint"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2212
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2213
    self fillCircleX:(aPoint x) y:(aPoint y) radius:aNumber
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2214
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2215
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2216
fillCircleIn:aRectangle
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2217
    "draw a filled circle in a box"
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2218
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2219
    self
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  2220
	fillArcX:(aRectangle left)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  2221
	       y:(aRectangle top)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  2222
	   width:(aRectangle width)
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  2223
	  height:(aRectangle height)
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2224
	    from:0
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  2225
	   angle:360
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2226
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2227
    "Created: 13.4.1996 / 20:57:41 / cg"
653
0ad3de022f8b fill/drawArc..w:h:.. renamed to ...width:height:...
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
  2228
    "Modified: 8.5.1996 / 08:42:38 / cg"
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2229
!
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2230
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2231
fillCircleX:x y:y radius:r
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2232
    "draw a filled circle around x@y"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2233
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2234
    |d|
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2235
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2236
    d := 2 * r.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2237
    self
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  2238
	fillArcX:(x - r)
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2239
	y:(y - r)
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  2240
	width:d
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2241
	height:d
1956
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  2242
	from:0
d15780bd1b47 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1953
diff changeset
  2243
	angle:360
653
0ad3de022f8b fill/drawArc..w:h:.. renamed to ...width:height:...
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
  2244
0ad3de022f8b fill/drawArc..w:h:.. renamed to ...width:height:...
Claus Gittinger <cg@exept.de>
parents: 619
diff changeset
  2245
    "Modified: 8.5.1996 / 08:43:02 / cg"
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2246
!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2247
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2248
fillRectangle:aRectangle
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2249
    "fill a rectangle with current paint color"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2250
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2251
    self fillRectangleX:(aRectangle left)
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2252
		      y:(aRectangle top)
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2253
		  width:(aRectangle width)
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2254
		 height:(aRectangle height)
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2255
!
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2256
3733
bc056060b833 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3717
diff changeset
  2257
fillRectangleLeft:left top:top right:cornerX bottom:cornerY
bc056060b833 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3717
diff changeset
  2258
    "draw a filled rectangle.
bc056060b833 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3717
diff changeset
  2259
     Notice: the cornerPoint itself is NOT included"
bc056060b833 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3717
diff changeset
  2260
bc056060b833 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3717
diff changeset
  2261
    self fillRectangleX:left y:top width:(cornerX - left) height:(cornerY - top)
bc056060b833 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3717
diff changeset
  2262
!
bc056060b833 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3717
diff changeset
  2263
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2264
fillRectangleOrigin:origin corner:corner
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2265
    "draw a filled rectangle.
3733
bc056060b833 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3717
diff changeset
  2266
     Notice: the cornerPoint itself is NOT included"
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2267
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2268
    |top left|
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2269
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2270
    left := origin x.
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2271
    top := origin y.
3733
bc056060b833 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3717
diff changeset
  2272
    self fillRectangleX:left y:top width:(corner x - left) height:(corner y - top)
563
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2273
d6c07537b4a4 commentary
Claus Gittinger <cg@exept.de>
parents: 561
diff changeset
  2274
    "Created: 13.4.1996 / 20:58:16 / cg"
3954
192ecfed736f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
  2275
!
192ecfed736f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
  2276
192ecfed736f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
  2277
fillRectangleOrigin:origin extent:extent
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2278
    "draw a filled rectangle.
3954
192ecfed736f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
  2279
     Notice: the cornerPoint itself is NOT included"
192ecfed736f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
  2280
192ecfed736f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
  2281
    self fillRectangleX:(origin x) y:(origin y) width:(extent x) height:(extent y)
4901
b96f1e51b7ec round rectangle drawing.
Claus Gittinger <cg@exept.de>
parents: 4900
diff changeset
  2282
!
b96f1e51b7ec round rectangle drawing.
Claus Gittinger <cg@exept.de>
parents: 4900
diff changeset
  2283
b96f1e51b7ec round rectangle drawing.
Claus Gittinger <cg@exept.de>
parents: 4900
diff changeset
  2284
fillRoundRectangleX:left y:top width:width height:height wCorner:wCorn hCorner:hCorn
b96f1e51b7ec round rectangle drawing.
Claus Gittinger <cg@exept.de>
parents: 4900
diff changeset
  2285
    |right bottom wC hC wHalf hHalf|
b96f1e51b7ec round rectangle drawing.
Claus Gittinger <cg@exept.de>
parents: 4900
diff changeset
  2286
b96f1e51b7ec round rectangle drawing.
Claus Gittinger <cg@exept.de>
parents: 4900
diff changeset
  2287
    right := left + width.
b96f1e51b7ec round rectangle drawing.
Claus Gittinger <cg@exept.de>
parents: 4900
diff changeset
  2288
    bottom := top + height.
b96f1e51b7ec round rectangle drawing.
Claus Gittinger <cg@exept.de>
parents: 4900
diff changeset
  2289
b96f1e51b7ec round rectangle drawing.
Claus Gittinger <cg@exept.de>
parents: 4900
diff changeset
  2290
    wC := wCorn.
b96f1e51b7ec round rectangle drawing.
Claus Gittinger <cg@exept.de>
parents: 4900
diff changeset
  2291
    hC := hCorn.
b96f1e51b7ec round rectangle drawing.
Claus Gittinger <cg@exept.de>
parents: 4900
diff changeset
  2292
b96f1e51b7ec round rectangle drawing.
Claus Gittinger <cg@exept.de>
parents: 4900
diff changeset
  2293
    wHalf := wC / 2.
b96f1e51b7ec round rectangle drawing.
Claus Gittinger <cg@exept.de>
parents: 4900
diff changeset
  2294
    hHalf := hC / 2.
b96f1e51b7ec round rectangle drawing.
Claus Gittinger <cg@exept.de>
parents: 4900
diff changeset
  2295
6371
a5f8a5dd647f class: GraphicsContext
Claus Gittinger <cg@exept.de>
parents: 6272
diff changeset
  2296
    device isWindowsPlatform ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2297
	"/ bug workaround
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2298
	"top left arc"
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2299
	self fillArcX:left y:top width:wC height:hC from:90 angle:90.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2300
	"top right arc"
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2301
	self fillArcX:(right - wC - 1) y:top width:wC height:hC from:0 angle:90.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2302
	"bottom right arc"
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2303
	self fillArcX:(right - wC - 1) y:(bottom - hC - 1) width:wC height:hC from:270 angle:90.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2304
	"bottom left arc"
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2305
	self fillArcX:left y:(bottom - hC) width:wC height:hC-1 from:180 angle:90.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2306
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2307
	"center rectangle"
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2308
	self fillRectangleX:(left + wHalf) y:top width:(width - wHalf - wHalf+1) height:height-1.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2309
	"left partial rectangle"
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2310
	self fillRectangleX:left y:top+hHalf width:wHalf height:(height-hHalf-hHalf).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2311
	"right partial rectangle"
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2312
	self fillRectangleX:right-wHalf y:top+hHalf width:wHalf-1 height:(height-hHalf-hHalf).
4901
b96f1e51b7ec round rectangle drawing.
Claus Gittinger <cg@exept.de>
parents: 4900
diff changeset
  2313
    ] ifFalse:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2314
	"top left arc"
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2315
	self fillArcX:left y:top width:wC height:hC from:90 angle:90.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2316
	"top right arc"
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2317
	self fillArcX:(right - wC) y:top width:wC height:hC from:0 angle:90.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2318
	"bottom right arc"
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2319
	self fillArcX:(right - wC - 1) y:(bottom - hC) width:wC height:hC from:270 angle:90.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2320
	"bottom left arc"
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2321
	self fillArcX:left y:(bottom - hC) width:wC height:hC from:180 angle:90.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2322
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2323
	"center rectangle"
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2324
	self fillRectangleX:(left + wHalf) y:top width:(width - wHalf - wHalf+1) height:height.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2325
	"left partial rectangle"
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2326
	self fillRectangleX:left y:top+hHalf width:wHalf height:(height-hHalf-hHalf).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2327
	"right partial rectangle"
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2328
	self fillRectangleX:right-wHalf y:top+hHalf width:wHalf height:(height-hHalf-hHalf).
4901
b96f1e51b7ec round rectangle drawing.
Claus Gittinger <cg@exept.de>
parents: 4900
diff changeset
  2329
    ].
b96f1e51b7ec round rectangle drawing.
Claus Gittinger <cg@exept.de>
parents: 4900
diff changeset
  2330
b96f1e51b7ec round rectangle drawing.
Claus Gittinger <cg@exept.de>
parents: 4900
diff changeset
  2331
b96f1e51b7ec round rectangle drawing.
Claus Gittinger <cg@exept.de>
parents: 4900
diff changeset
  2332
    "
b96f1e51b7ec round rectangle drawing.
Claus Gittinger <cg@exept.de>
parents: 4900
diff changeset
  2333
     |v|
b96f1e51b7ec round rectangle drawing.
Claus Gittinger <cg@exept.de>
parents: 4900
diff changeset
  2334
b96f1e51b7ec round rectangle drawing.
Claus Gittinger <cg@exept.de>
parents: 4900
diff changeset
  2335
     (v := View new) extent:200@200; openAndWait.
b96f1e51b7ec round rectangle drawing.
Claus Gittinger <cg@exept.de>
parents: 4900
diff changeset
  2336
     v fillRoundRectangleX:10 y:10 width:100 height:100 wCorner:20 hCorner:20
b96f1e51b7ec round rectangle drawing.
Claus Gittinger <cg@exept.de>
parents: 4900
diff changeset
  2337
    "
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2338
! !
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2339
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2340
!GraphicsContext methodsFor:'initialization'!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2341
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2342
initialize
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2343
    "set up some useful default values"
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2344
952
91619d21efd7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 786
diff changeset
  2345
    paint isNil ifTrue:[paint := Black].
91619d21efd7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 786
diff changeset
  2346
    bgPaint isNil ifTrue:[bgPaint := White].
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2347
    function := #copy.
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2348
    lineWidth := 1.
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2349
    lineStyle := #solid.
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2350
    joinStyle := #miter.
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2351
    capStyle := #butt.
6144
beebe1c57358 class: GraphicsContext
Stefan Vogel <sv@exept.de>
parents: 6081
diff changeset
  2352
    font := self class defaultFont.
7289
0d69fc01daba #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7240
diff changeset
  2353
0d69fc01daba #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7240
diff changeset
  2354
    "/ this is rubbish. we are now always using unicode internaly
4056
67c4686afbc6 characterEncoding stuff
Claus Gittinger <cg@exept.de>
parents: 4027
diff changeset
  2355
    characterEncoding := #'iso10646-1'. "/ aka unicode
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2356
! !
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2357
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2358
!GraphicsContext methodsFor:'misc'!
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2359
3033
2d910a68668f checkin from browser
ps
parents: 2938
diff changeset
  2360
clippedTo:aRectangle do:aBlock
2d910a68668f checkin from browser
ps
parents: 2938
diff changeset
  2361
    |oldClip|
2d910a68668f checkin from browser
ps
parents: 2938
diff changeset
  2362
2d910a68668f checkin from browser
ps
parents: 2938
diff changeset
  2363
    oldClip := clipRect.
7463
48202ec4ce92 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7457
diff changeset
  2364
    self clippingBounds:aRectangle.
48202ec4ce92 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7457
diff changeset
  2365
    aBlock ensure:[
48202ec4ce92 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7457
diff changeset
  2366
        self clippingBounds:oldClip
48202ec4ce92 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7457
diff changeset
  2367
    ].
3033
2d910a68668f checkin from browser
ps
parents: 2938
diff changeset
  2368
!
2d910a68668f checkin from browser
ps
parents: 2938
diff changeset
  2369
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2370
flush
585
426d2018cdc8 commentary
Claus Gittinger <cg@exept.de>
parents: 563
diff changeset
  2371
    "send all buffered drawing to the device."
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2372
742
655abd0c228d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 740
diff changeset
  2373
    device flush
585
426d2018cdc8 commentary
Claus Gittinger <cg@exept.de>
parents: 563
diff changeset
  2374
742
655abd0c228d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 740
diff changeset
  2375
    "Modified: 28.5.1996 / 20:22:26 / cg"
6268
b999f70fffb6 class: GraphicsContext
Stefan Vogel <sv@exept.de>
parents: 6258
diff changeset
  2376
!
b999f70fffb6 class: GraphicsContext
Stefan Vogel <sv@exept.de>
parents: 6258
diff changeset
  2377
b999f70fffb6 class: GraphicsContext
Stefan Vogel <sv@exept.de>
parents: 6258
diff changeset
  2378
sync
b999f70fffb6 class: GraphicsContext
Stefan Vogel <sv@exept.de>
parents: 6258
diff changeset
  2379
    "send all buffered drawing to the device and wait until the device responds"
b999f70fffb6 class: GraphicsContext
Stefan Vogel <sv@exept.de>
parents: 6258
diff changeset
  2380
b999f70fffb6 class: GraphicsContext
Stefan Vogel <sv@exept.de>
parents: 6258
diff changeset
  2381
    device sync
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2382
! !
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2383
6081
9f752a3d8ea0 class: GraphicsContext
Michael Beyl <mb@exept.de>
parents: 5841
diff changeset
  2384
!GraphicsContext methodsFor:'printing & storing'!
9f752a3d8ea0 class: GraphicsContext
Michael Beyl <mb@exept.de>
parents: 5841
diff changeset
  2385
6173
124dbde3be9e class: GraphicsContext
Stefan Vogel <sv@exept.de>
parents: 6144
diff changeset
  2386
storeOn:aStream
6081
9f752a3d8ea0 class: GraphicsContext
Michael Beyl <mb@exept.de>
parents: 5841
diff changeset
  2387
    "blocked: ascii storeString not possible (recursive - view - subviews - container)"
9f752a3d8ea0 class: GraphicsContext
Michael Beyl <mb@exept.de>
parents: 5841
diff changeset
  2388
6173
124dbde3be9e class: GraphicsContext
Stefan Vogel <sv@exept.de>
parents: 6144
diff changeset
  2389
    self shouldNotImplement.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7358
diff changeset
  2390
    "if proceeded from exception..."
6173
124dbde3be9e class: GraphicsContext
Stefan Vogel <sv@exept.de>
parents: 6144
diff changeset
  2391
    self printOn:aStream.
6081
9f752a3d8ea0 class: GraphicsContext
Michael Beyl <mb@exept.de>
parents: 5841
diff changeset
  2392
! !
9f752a3d8ea0 class: GraphicsContext
Michael Beyl <mb@exept.de>
parents: 5841
diff changeset
  2393
4984
af923a212424 New: #fontAscent
Stefan Vogel <sv@exept.de>
parents: 4954
diff changeset
  2394
!GraphicsContext methodsFor:'queries'!
af923a212424 New: #fontAscent
Stefan Vogel <sv@exept.de>
parents: 4954
diff changeset
  2395
af923a212424 New: #fontAscent
Stefan Vogel <sv@exept.de>
parents: 4954
diff changeset
  2396
fontAscent
af923a212424 New: #fontAscent
Stefan Vogel <sv@exept.de>
parents: 4954
diff changeset
  2397
    "answer the ascent of the current font on the current device"
af923a212424 New: #fontAscent
Stefan Vogel <sv@exept.de>
parents: 4954
diff changeset
  2398
af923a212424 New: #fontAscent
Stefan Vogel <sv@exept.de>
parents: 4954
diff changeset
  2399
    ^ font ascentOn:device
af923a212424 New: #fontAscent
Stefan Vogel <sv@exept.de>
parents: 4954
diff changeset
  2400
! !
af923a212424 New: #fontAscent
Stefan Vogel <sv@exept.de>
parents: 4954
diff changeset
  2401
1203
49dd13574c7d dont use Black/White when drawing;
Claus Gittinger <cg@exept.de>
parents: 952
diff changeset
  2402
!GraphicsContext class methodsFor:'documentation'!
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2403
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2404
version
7015
09828e08bc73 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 6535
diff changeset
  2405
    ^ '$Header$'
5355
6fdcaea511a2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5032
diff changeset
  2406
!
6fdcaea511a2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5032
diff changeset
  2407
6fdcaea511a2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5032
diff changeset
  2408
version_CVS
7015
09828e08bc73 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 6535
diff changeset
  2409
    ^ '$Header$'
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2410
! !
3733
bc056060b833 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3717
diff changeset
  2411
6081
9f752a3d8ea0 class: GraphicsContext
Michael Beyl <mb@exept.de>
parents: 5841
diff changeset
  2412
519
ea7d88d346fe nicer message
Claus Gittinger <cg@exept.de>
parents: 418
diff changeset
  2413
GraphicsContext initialize!