GraphicsMedium.st
author Stefan Vogel <sv@exept.de>
Fri, 26 Sep 2014 11:48:32 +0200
branchdelegated_gc
changeset 6581 757f060cd8f3
parent 6580 c2754553e0a4
child 6800 f4acb46ba42e
permissions -rw-r--r--
class: GraphicsMedium changed: #displayRoundRectangleX:y:width:height:wCorner:hCorner: #fillRoundRectangleX:y:width:height:wCorner:hCorner: #platformName = 'WIN' -> #isWindowsPlatform
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
 COPYRIGHT (c) 1989 by Claus Gittinger
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
	      All Rights Reserved
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
 This software is furnished under a license and may be used
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 hereby transferred.
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
"
3339
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
    12
"{ Package: 'stx:libview' }"
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
    13
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    14
Object subclass:#GraphicsMedium
3034
655101b8f19f preps to make gc an instvar instead of inheriting things.
Claus Gittinger <cg@exept.de>
parents: 3022
diff changeset
    15
	instanceVariableNames:'gc width height realized'
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
	classVariableNames:''
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
	poolDictionaries:''
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	category:'Graphics-Support'
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
!GraphicsMedium class methodsFor:'documentation'!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
copyright
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
 COPYRIGHT (c) 1989 by Claus Gittinger
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
	      All Rights Reserved
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
 This software is furnished under a license and may be used
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
 only in accordance with the terms of that license and with the
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
 inclusion of the above copyright notice.   This software may not
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
 be provided or otherwise made available to, or used by, any
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
 other person.  No title to or ownership of the software is
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
 hereby transferred.
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
documentation
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
    this is an abstract superclass for all kinds of drawables which
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
    have a physical representation (i.e. have an extent). Dont use messages
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
    from here - it will vanish soon.
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
    [Instance variables:]
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
5321
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
    45
	width           <SmallInteger>  the width (device dependent, usually pixels or inches)
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
    46
	height          <SmallInteger>  the height (device dependent, usually pixels or inches)
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
    [author:]
5321
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
    49
	Claus Gittinger
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
! !
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    53
!GraphicsMedium class methodsFor:'instance creation'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    54
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    55
new
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    56
    "create a new drawable - take the current display as
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    57
     its device (for now, this may be changed until the view is
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    58
     physically created)"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    59
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    60
"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    61
    'Warning: DeviceGraphicsContext (' print. self name print. ') should not be created with new' printNL.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    62
"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    63
    ^ self onDevice:Screen current.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    64
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    65
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    66
on:aDevice
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    67
    "create a new drawable on aDevice"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    68
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    69
    <resource:#obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    70
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    71
    "/ send out a warning: #on: is typically used to create a view
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    72
    "/ operating on a model.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    73
    "/ Please use #onDevice: to avoid confusion.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    74
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    75
    self obsoleteMethodWarning:'use #onDevice:'.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    76
    ^ self onDevice:aDevice
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    77
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    78
    "Modified: 5.6.1997 / 21:04:16 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    79
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    80
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    81
onDevice:aDevice
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    82
    "create a new drawable on aDevice"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    83
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    84
    ^ self basicNew initializeForDevice:aDevice.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    85
! !
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    86
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    87
!GraphicsMedium class methodsFor:'Signal constants'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    88
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    89
drawingOnClosedDrawableSignal
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    90
    "return the signal which is raised, if drawing is attempted
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    91
     on a closed drawable.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    92
     This is especially useful, if a forked thread animates
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    93
     a view in the background, and is not properly synchronized
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    94
     with the window thread - i.e. the window gets closed by the user,
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    95
     and the background process continues to draw.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    96
     In this case, the background thread should handle this signal
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    97
     and terminate itself in the handler."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    98
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    99
    ^ GraphicsContext drawingOnClosedDrawableSignal
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   100
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   101
    "demonstration1: (error if closed by the windowManager):
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   102
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   103
     |v|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   104
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   105
     v := StandardSystemView new openAndWait.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   106
     [
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   107
	[true] whileTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   108
	    |x y|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   109
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   110
	    x := Random nextIntegerBetween:0 and:(v width).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   111
	    y := Random nextIntegerBetween:0 and:(v height).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   112
	    v displayString:'hello' x:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   113
	    Delay waitForSeconds:0.5.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   114
	]
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   115
     ] fork.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   116
    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   117
    "demonstration2: (no error if closed by the windowManager):
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   118
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   119
     |v|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   120
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   121
     v := StandardSystemView new openAndWait.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   122
     [
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   123
	v class drawingOnClosedDrawableSignal handle:[:ex |
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   124
	    ex return
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   125
	] do:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   126
	    [true] whileTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   127
		|x y|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   128
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   129
		x := Random nextIntegerBetween:0 and:(v width).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   130
		y := Random nextIntegerBetween:0 and:(v height).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   131
		v displayString:'hello' x:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   132
		Delay waitForSeconds:0.5.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   133
	    ]
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   134
	]
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   135
     ] fork.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   136
    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   137
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   138
    "Created: / 29.1.1998 / 13:10:41 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   139
    "Modified: / 29.1.1998 / 13:11:14 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   140
! !
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   141
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   142
!GraphicsMedium class methodsFor:'accessing-defaults'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   143
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   144
defaultFont
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   145
    "get the default font used for drawing"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   146
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   147
    ^ GraphicsContext defaultFont
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   148
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   149
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   150
defaultFont:aFont
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   151
    "set the default font used for drawing"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   152
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   153
    GraphicsContext defaultFont:aFont
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   154
! !
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   155
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   156
!GraphicsMedium methodsFor:'Compatibility-ST80'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   157
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   158
displayArc:origin radius:radius from:startAngle angle:angle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   159
    "draw an arc around a point"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   160
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   161
    self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   162
	displayArcX:(origin x - radius)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   163
		  y:(origin y - radius)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   164
	      width:(radius * 2)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   165
	     height:(radius * 2)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   166
	       from:startAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   167
	      angle:angle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   168
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   169
    "Modified: 8.5.1996 / 08:34:43 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   170
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   171
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   172
displayArcBoundedBy:boundingBox startAngle:startAngle sweepAngle:sweepAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   173
   "draw an arc/circle/ellipse - ST-80 compatibility"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   174
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   175
   ^ self displayArcX:(boundingBox left)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   176
		    y:(boundingBox top)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   177
		width:(boundingBox width)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   178
	       height:(boundingBox height)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   179
		 from:startAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   180
		angle:sweepAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   181
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   182
    "Created: / 14.11.1997 / 21:04:19 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   183
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   184
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   185
displayArcBoundedBy:boundingBox startAngle:startAngle sweepAngle:sweepAngle at:origin
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   186
   "draw an arc/circle/ellipse - ST-80 compatibility"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   187
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   188
   ^ self displayArcX:(boundingBox left + origin x)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   189
		    y:(boundingBox top + origin y)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   190
		width:(boundingBox width)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   191
	       height:(boundingBox height)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   192
		 from:startAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   193
		angle:sweepAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   194
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   195
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   196
displayLineFrom:startPoint to:endPoint translateBy:anOffset
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   197
    "draw a line - ST-80 compatibility"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   198
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   199
    self displayLineFrom:(startPoint + anOffset)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   200
		      to:(endPoint + anOffset)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   201
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   202
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   203
displayPolyline:aPolygon
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   204
    "draw a polygon - ST-80 compatibility"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   205
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   206
    ^ self displayPolygon:aPolygon
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   207
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   208
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   209
displayRectangularBorder:aRectangle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   210
    "draw a rectangle - ST-80 compatibility"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   211
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   212
    self displayRectangle:aRectangle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   213
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   214
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   215
displayRectangularBorder:aRectangle at:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   216
    "draw a rectangle - ST-80 compatibility"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   217
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   218
    self displayRectangle:(aRectangle translateBy:aPoint)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   219
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   220
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   221
displayWedgeBoundedBy:boundingBox startAngle:startAngle sweepAngle:sweepAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   222
   "fill an arc/circle/ellipse - ST-80 compatibility"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   223
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   224
   ^ self fillArcX:(boundingBox left)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   225
		 y:(boundingBox top)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   226
	     width:(boundingBox width)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   227
	    height:(boundingBox height)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   228
	      from:startAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   229
	     angle:sweepAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   230
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   231
    "Created: 27.1.1997 / 15:50:14 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   232
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   233
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   234
displayWedgeBoundedBy:boundingBox startAngle:startAngle sweepAngle:sweepAngle at:origin
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   235
   "fill an arc/circle/ellipse - ST-80 compatibility"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   236
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   237
   ^ self fillArcX:(boundingBox left + origin x)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   238
		 y:(boundingBox top + origin y)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   239
	     width:(boundingBox width)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   240
	    height:(boundingBox height)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   241
	      from:startAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   242
	     angle:sweepAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   243
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   244
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   245
findFont:aFontDescription
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   246
    "given a fontDescription, return a device font for it
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   247
     on my device."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   248
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   249
    ^ aFontDescription onDevice:self device
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   250
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   251
    "Modified: 28.5.1996 / 20:22:29 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   252
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   253
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   254
key
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   255
    ^ self id
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   256
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   257
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   258
phase
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   259
    "return the origin within the mask (used to draw with patterns).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   260
     This is an alias for ST/X's #maskOrigin"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   261
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   262
    ^ self maskOrigin
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   263
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   264
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   265
phase:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   266
    "set the origin within the mask (used to draw with patterns).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   267
     This is an alias for ST/X's #maskOrigin:"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   268
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   269
    ^ self maskOrigin:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   270
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   271
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   272
setDevicePattern:aColorOrMask
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   273
    "ST/X can paint in any color or image"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   274
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   275
    self paint:aColorOrMask
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   276
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   277
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   278
tilePhase
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   279
    "return the origin within the mask (used to draw with patterns).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   280
     This is an alias for ST/X's #maskOrigin"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   281
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   282
    ^ self maskOrigin
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   283
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   284
    "Created: 4.6.1996 / 15:26:39 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   285
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   286
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   287
tilePhase:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   288
    "set the origin within the mask (used to draw with patterns).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   289
     This is an alias for ST/X's #maskOrigin"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   290
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   291
    ^ self maskOrigin:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   292
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   293
    "Created: 4.6.1996 / 15:26:49 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   294
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   295
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   296
widthOfString:aString
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   297
    "given a string, return its width in pixels if
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   298
     drawn on the receivers device."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   299
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   300
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   301
        ^ super widthOfString:aString.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   302
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   303
    ^ gc widthOfString:aString.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   304
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   305
    "Modified: 28.5.1996 / 20:22:22 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   306
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   307
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   308
widthOfString:aString from:start to:stop
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   309
    "given a string, return the width in pixels if
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   310
     a substring is drawn on the receivers device."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   311
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   312
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   313
        ^ super widthOfString:aString from:start to:stop.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   314
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   315
    ^ gc widthOfString:aString from:start to:stop.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   316
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   317
    "Modified: 28.5.1996 / 20:22:18 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   318
! !
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   319
3880
c4c8268a2d9f method category rename
Claus Gittinger <cg@exept.de>
parents: 3396
diff changeset
   320
!GraphicsMedium methodsFor:'Compatibility-Squeak'!
2947
53f0ea77b1e4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2030
diff changeset
   321
3339
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   322
copyBits:aRectangle from:aForm at:srcOrigin clippingBox:clippingBox rule:rule fillColor:fillColor
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   323
    |f oldClip oldFunction|
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   324
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   325
    (f := rule) isInteger ifTrue:[
5321
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   326
	"/ ST-80 compatibility: numeric rule
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   327
	f := #(clear and andReverse  copy andInverted noop xor or nor equiv invert orInverted copyInverted
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   328
	       orReverse nand set) at:(rule + 1).
3339
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   329
    ].
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   330
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   331
    oldFunction := gc function.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   332
    oldClip := gc clippingRectangleOrNil.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   333
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   334
    gc clippingRectangle:clippingBox.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   335
    gc function:f.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   336
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   337
    gc
5321
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   338
	copyFrom:aForm
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   339
	x:srcOrigin x y:srcOrigin y
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   340
	toX:aRectangle left y:aRectangle top
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   341
	width:aRectangle width height:aRectangle height.
3339
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   342
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   343
    gc clippingRectangle:oldClip.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   344
    gc function:oldFunction.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   345
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   346
    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   347
      |dst src|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   348
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   349
      dst := Form width:8 height:8 fromArray:#[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   350
					      2r00000000
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   351
					      2r00000000
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   352
					      2r00000000
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   353
					      2r00000000
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   354
					      2r11111111
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   355
					      2r11111111
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   356
					      2r11111111
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   357
					      2r11111111
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   358
					     ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   359
      src := Form width:8 height:8 fromArray:#[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   360
					      2r00001111
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   361
					      2r00001111
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   362
					      2r00001111
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   363
					      2r00001111
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   364
					      2r00001111
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   365
					      2r00001111
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   366
					      2r00001111
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   367
					      2r00001111
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   368
					     ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   369
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   370
    dst copyBits:(0@0 corner:8@8) from:src at:0@0 clippingBox:(0@0 corner:8@8) rule:15 fillColor:Color black.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   371
    dst inspect
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   372
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   373
    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   374
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   375
    "Modified: / 23.10.2000 / 16:50:44 / martin"
3339
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   376
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   377
    "
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   378
      |dst src|
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   379
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   380
      dst := Form width:8 height:8 fromArray:#[
5321
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   381
					      2r00000000
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   382
					      2r00000000
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   383
					      2r00000000
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   384
					      2r00000000
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   385
					      2r11111111
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   386
					      2r11111111
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   387
					      2r11111111
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   388
					      2r11111111
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   389
					     ].
3339
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   390
      src := Form width:8 height:8 fromArray:#[
5321
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   391
					      2r00001111
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   392
					      2r00001111
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   393
					      2r00001111
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   394
					      2r00001111
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   395
					      2r00001111
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   396
					      2r00001111
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   397
					      2r00001111
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   398
					      2r00001111
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   399
					     ].
3339
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   400
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   401
    dst copyBits:(0@0 corner:8@8) from:src at:0@0 clippingBox:(0@0 corner:8@8) rule:15 fillColor:Color black.
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   402
    dst inspect
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   403
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   404
    "
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   405
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   406
    "Modified: / 23.10.2000 / 16:50:44 / martin"
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   407
!
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   408
3396
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3339
diff changeset
   409
fill:aRectangle fillColor:aColor
3022
72a01d644ce1 Squeak compatibility
ps
parents: 2955
diff changeset
   410
    "fill the rectangular area specified by aRectangle with the black color"
72a01d644ce1 Squeak compatibility
ps
parents: 2955
diff changeset
   411
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   412
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   413
	super fill:aRectangle fillColor:aColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   414
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   415
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   416
    gc fill:aRectangle fillColor:aColor
3396
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3339
diff changeset
   417
!
3022
72a01d644ce1 Squeak compatibility
ps
parents: 2955
diff changeset
   418
3396
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3339
diff changeset
   419
fillBlack:aRectangle
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3339
diff changeset
   420
    "fill the rectangular area specified by aRectangle with the black color"
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3339
diff changeset
   421
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   422
    self fill:aRectangle fillColor:Color black
3022
72a01d644ce1 Squeak compatibility
ps
parents: 2955
diff changeset
   423
!
72a01d644ce1 Squeak compatibility
ps
parents: 2955
diff changeset
   424
2947
53f0ea77b1e4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2030
diff changeset
   425
fillColor:something
53f0ea77b1e4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2030
diff changeset
   426
    "fill the receiver with something;
53f0ea77b1e4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2030
diff changeset
   427
     something may be a Form, Color or colorIndex"
53f0ea77b1e4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2030
diff changeset
   428
53f0ea77b1e4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2030
diff changeset
   429
    self fill:something
3022
72a01d644ce1 Squeak compatibility
ps
parents: 2955
diff changeset
   430
!
72a01d644ce1 Squeak compatibility
ps
parents: 2955
diff changeset
   431
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   432
fillRectangle:aRectangle color:aColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   433
    "fill a rectangle with the given paint color"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   434
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   435
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   436
	super fillRectangle:aRectangle color:aColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   437
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   438
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   439
    gc fillRectangle:aRectangle color:aColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   440
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   441
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   442
fillWhite
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   443
    "fill all of the receiver with the white color"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   444
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   445
    self fill:Color white
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   446
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   447
3022
72a01d644ce1 Squeak compatibility
ps
parents: 2955
diff changeset
   448
fillWhite:aRectangle
72a01d644ce1 Squeak compatibility
ps
parents: 2955
diff changeset
   449
    "fill the rectangular area specified by aRectangle with the white color"
72a01d644ce1 Squeak compatibility
ps
parents: 2955
diff changeset
   450
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   451
    self fill:aRectangle fillColor:Color white
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   452
! !
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   453
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   454
!GraphicsMedium methodsFor:'Compatibility-VW'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   455
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   456
displayBackgroundIfNeededOn: aGraphicsContext
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   457
    aGraphicsContext clearView.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   458
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   459
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   460
inactiveForegroundColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   461
    "a dummy method to support VW widgets"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   462
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   463
    ^ self foregroundColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   464
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   465
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   466
selectionBackgroundColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   467
    "a dummy method to support VW widgets"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   468
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   469
    ^ self foregroundColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   470
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   471
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   472
selectionForegroundColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   473
    "a dummy method to support VW widgets"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   474
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   475
    ^ self backgroundColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   476
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   477
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   478
separatorColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   479
    "a dummy method to support VW widgets"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   480
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   481
    ^ self foregroundColor
2947
53f0ea77b1e4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2030
diff changeset
   482
! !
53f0ea77b1e4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2030
diff changeset
   483
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   484
!GraphicsMedium methodsFor:'accessing'!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   485
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   486
at:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   487
    "return the pixel at the coordinate given by aPoint"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   488
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   489
    ^ self atX:aPoint x y:aPoint y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   490
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   491
    "Modified: / 29.1.2000 / 12:17:42 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   492
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   493
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   494
at:aPoint put:aPixelColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   495
    "set a pixel"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   496
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   497
    ^ self atX:aPoint x y:aPoint y put:aPixelColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   498
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   499
    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   500
     Display rootView at:(0@0) put:(Color red).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   501
     Display rootView at:(1@1) put:(Color red).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   502
     Display rootView at:(2@2) put:(Color red).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   503
     Display rootView at:(3@3) put:(Color red).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   504
     Display rootView at:(4@4) put:(Color red).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   505
     Display rootView at:(5@5) put:(Color red).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   506
    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   507
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   508
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   509
atX:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   510
    "return the pixel at the coordinate given by x/y"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   511
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   512
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   513
	^ super atX:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   514
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   515
    ^ gc atX:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   516
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   517
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   518
atX:x y:y put:aPixelColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   519
    "set a pixel"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   520
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   521
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   522
	super atX:x y:y put:aPixelColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   523
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   524
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   525
    gc atX:x y:y put:aPixelColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   526
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   527
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   528
backgroundPaint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   529
    "return the background paint color.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   530
     (used for opaqueForms and opaqueStrings)"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   531
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   532
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   533
	^ super backgroundPaint.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   534
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   535
    ^ gc backgroundPaint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   536
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   537
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   538
backgroundPaint:aColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   539
    "set the background-paint color; this is used in opaque-draw
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   540
     operations"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   541
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   542
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   543
	super backgroundPaint:aColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   544
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   545
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   546
    gc backgroundPaint:aColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   547
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   548
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   549
basicFont
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   550
    "return the font for drawing"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   551
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   552
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   553
	^ super basicFont.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   554
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   555
    ^ gc basicFont
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   556
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   557
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   558
basicFont:aFont
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   559
    "set the font for drawing if it has changed.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   560
     This is a low level entry, which is not to be redefined
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   561
     (i.e. it must not imply a redraw operation)"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   562
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   563
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   564
	super basicFont:aFont.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   565
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   566
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   567
    gc basicFont:aFont
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   568
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   569
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   570
blackColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   571
    gc isNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   572
        ^ Color black.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   573
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   574
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   575
        ^ super device blackColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   576
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   577
    ^ gc device blackColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   578
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   579
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   580
bottomCenter
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   581
    "return the topCenter point"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   582
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   583
    ^ (self left + (width//2) - 1) @ (self top + height - 1)
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   584
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   585
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   586
bottomLeft
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   587
    "return the bottomLeft point"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   588
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   589
    ^ (self left) @ (self top + height - 1)
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   590
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   591
2947
53f0ea77b1e4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2030
diff changeset
   592
boundingBox
5321
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   593
    ^ Rectangle
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   594
	origin: 0 @ 0
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   595
	corner: width @ height
2947
53f0ea77b1e4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2030
diff changeset
   596
53f0ea77b1e4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2030
diff changeset
   597
!
53f0ea77b1e4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2030
diff changeset
   598
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   599
capStyle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   600
    "return the current cap-style for line-drawing.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   601
     possible styles are: #notLast, #butt, #round, #projecting"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   602
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   603
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   604
	^ super capStyle.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   605
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   606
    ^ gc capStyle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   607
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   608
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   609
capStyle:aStyleSymbol
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   610
    "set the cap-style for line-drawing;
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   611
     possible styles are: #notLast, #butt, #round, #projecting"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   612
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   613
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   614
	super capStyle:aStyleSymbol.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   615
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   616
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   617
    gc capStyle:aStyleSymbol
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   618
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   619
    "Modified: 12.5.1996 / 22:24:30 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   620
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   621
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   622
center
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   623
    "return the point at the center of the receiver"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   624
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   625
    ^ (self left + (width // 2)) @ (self top + (height // 2))
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   626
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   627
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   628
characterEncoding
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   629
    "returns a symbol describing how the contents is encoded internally.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   630
     For now, this should be the same encoding as my fonts encoding (otherwise, mappings would
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   631
     occur when drawing).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   632
     This is (currently) only passed down from the fileBrowser,
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   633
     and required when japanese/chinese/korean text is edited.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   634
     (encoding is something like #'iso8859-5' #euc, #sjis, #jis7, #gb, #big5 or #ksc)"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   635
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   636
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   637
	^ super characterEncoding.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   638
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   639
    ^ gc characterEncoding
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   640
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   641
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   642
characterEncoding:encodingArg
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   643
    "define how the contents is encoded internally.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   644
     This should normally never be required, as ST/X now assumes
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   645
     unicode (of which iso8859-1 is a subset) encoding.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   646
     The possibility to change the characterEncoding is provided as
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   647
     a backward compatibility hook for programs which want to use
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   648
     another encoding internally. One such view is the CharacterSetView,
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   649
     which wants to show character as they are actually present in a font."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   650
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   651
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   652
	super characterEncoding:encodingArg.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   653
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   654
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   655
    gc characterEncoding:encodingArg
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   656
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   657
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   658
clipByChildren
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   659
    "drawing shall be done into my view only (default)"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   660
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   661
    <resource:#obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   662
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   663
    self obsoleteMethodWarning:'use #clippedByChildren:true'.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   664
    ^ self clippedByChildren:true
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   665
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   666
    "Created: 17.7.1996 / 13:25:55 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   667
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   668
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   669
clipRect
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   670
    "return the clip-rectangle for drawing.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   671
     If there is currently no active clip, return the underlying
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   672
     displaySurfaces (i.e. views) bounds. Added for ST-80 compatibility."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   673
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   674
    <resource:#obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   675
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   676
    self obsoleteMethodWarning:'use #clippingBounds'.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   677
    ^ self clippingBounds.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   678
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   679
    "Modified: 28.5.1996 / 14:14:53 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   680
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   681
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   682
clipRect:aRectangle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   683
    "set the drawing clip-rectangle"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   684
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   685
    <resource:#obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   686
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   687
    self obsoleteMethodWarning:'use #deviceClippingBounds:'.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   688
    ^ gc deviceClippingBounds:aRectangle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   689
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   690
    "Modified: 28.5.1996 / 14:13:09 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   691
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   692
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   693
clippedByChildren:aBoolean
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   694
    "turn on/off drawing over children.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   695
     If on, a superview may draw 'over' its children.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   696
     If off (the default), drawing is 'under' its children.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   697
     Only useful for the rootView, to draw over any visible views.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   698
     (for example, when dragging a rubber-line)"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   699
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   700
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   701
        super clippedByChildren:aBoolean.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   702
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   703
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   704
    gc clippedByChildren:aBoolean.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   705
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   706
    "Created: 17.7.1996 / 13:25:16 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   707
    "Modified: 29.4.1997 / 15:33:55 / dq"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   708
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   709
6217
a8a86bfb5cb5 class: GraphicsMedium
Stefan Vogel <sv@exept.de>
parents: 6045
diff changeset
   710
clippingBounds
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   711
    "return the clipping rectangle for drawing, nil if there is none."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   712
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   713
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   714
        ^ super clippingBounds.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   715
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   716
    ^ gc clippingBounds
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   717
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   718
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   719
clippingBounds:aRectangleOrNil
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   720
    "set the clipping rectangle for drawing (in logical coordinates);
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   721
     a nil argument turn off clipping (i.e. whole view is drawable)"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   722
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   723
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   724
        super clippingBounds:aRectangleOrNil.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   725
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   726
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   727
    gc clippingBounds:aRectangleOrNil
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   728
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   729
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   730
clippingBoundsOrNil
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   731
    "return the clipping rectangle for drawing, nil if there is none."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   732
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   733
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   734
        ^ super clippingBoundsOrNil.
6217
a8a86bfb5cb5 class: GraphicsMedium
Stefan Vogel <sv@exept.de>
parents: 6045
diff changeset
   735
    ].
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   736
    ^ gc clippingBoundsOrNil
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   737
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   738
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   739
clippingRectangle:aRectangleOrNil
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   740
    "set the clipping rectangle for drawing (in logical coordinates);
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   741
     a nil argument turn off clipping (i.e. whole view is drawable)"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   742
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   743
    <resource: #obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   744
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   745
    self clippingBounds:aRectangleOrNil
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   746
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   747
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   748
clippingRectangleOrNil
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   749
    "return the clipping rectangle for drawing, nil if there is none."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   750
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   751
    <resource: #obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   752
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   753
    ^ self clippingBoundsOrNil
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   754
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   755
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   756
colorAt:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   757
    "return the color of the pixel at the coordinate given by x@y"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   758
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   759
    ^ self colorAtX:(aPoint x) y:(aPoint y)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   760
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   761
    "Modified: 1.8.1997 / 20:01:58 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   762
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   763
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   764
colorAtX:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   765
    "return the color of the pixel at the coordinate given by aPoint"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   766
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   767
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   768
	^ super colorAtX:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   769
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   770
    ^ gc colorAtX:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   771
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   772
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   773
container
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   774
    "return my container - for protocol compatibility"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   775
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   776
    ^ nil
6217
a8a86bfb5cb5 class: GraphicsMedium
Stefan Vogel <sv@exept.de>
parents: 6045
diff changeset
   777
!
a8a86bfb5cb5 class: GraphicsMedium
Stefan Vogel <sv@exept.de>
parents: 6045
diff changeset
   778
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   779
corner
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   780
    "return the corner point i.e. the bottom-right point"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   781
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   782
    ^ (self left + width - 1) @ (self top + height - 1)
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   783
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   784
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   785
corner:aPoint
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   786
    "set the corner point i.e. change extent so that corner will be
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   787
     aPoint while leaving the origin unchanging "
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   788
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   789
    self extent:(aPoint x - self left + 1)
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   790
		@
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   791
		(aPoint y - self top + 1)
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   792
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   793
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   794
dashStyle:aDashList offset:dashOffset
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   795
    "define dashes. Each element of the dashList specifies the length
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   796
     of a corresponding dash. For example, setting it to [4 4]
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   797
     defines 4on-4off dashing;
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   798
     Setting it to [1 2 4 2] defines 1on-2off-4on-2off dashes.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   799
     The dashOffset specifies where in the dashList the dashing starts.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   800
     Ignored here - this may not be supported by all graphics devices."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   801
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   802
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   803
	^ super dashStyle:aDashList offset:dashOffset.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   804
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   805
    ^ gc dashStyle:aDashList offset:dashOffset
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   806
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   807
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   808
device
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   809
    "return the device, the receiver is associated with"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   810
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   811
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   812
        ^ super device.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   813
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   814
    gc isNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   815
        ^ nil.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   816
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   817
    ^ gc device
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   818
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   819
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   820
device:aDevice
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   821
    "set the device"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   822
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   823
    aDevice isNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   824
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   825
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   826
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   827
    gc isNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   828
        gc := aDevice newGraphicsContextFor:self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   829
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   830
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   831
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   832
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   833
        super device:aDevice.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   834
    ] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   835
        gc device:aDevice
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   836
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   837
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   838
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   839
deviceClippingRectangle:aRectangleOrNil
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   840
    "set the clipping rectangle for drawing (in device coordinates);
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   841
     a nil argument turns off clipping (i.e. whole view is drawable - incl. margins)"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   842
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   843
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   844
	super deviceClippingRectangle:aRectangleOrNil.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   845
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   846
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   847
    gc deviceClippingRectangle:aRectangleOrNil
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   848
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   849
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   850
drawableId
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   851
    "return the id of the drawable on the device"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   852
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   853
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   854
        ^ super drawableId.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   855
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   856
    gc isNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   857
        ^ nil.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   858
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   859
    ^ gc drawableId
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   860
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   861
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   862
extent
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   863
    "return the extent i.e. a point with width as x, height as y
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   864
     coordinate"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   865
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   866
    ^ width @ height
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   867
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   868
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   869
extent:extent
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   870
    "set the extent"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   871
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   872
    width := extent x.
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   873
    height := extent y
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   874
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   875
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   876
font
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   877
    "return the current drawing font"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   878
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   879
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   880
	^ super font.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   881
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   882
    ^ gc font
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   883
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   884
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   885
font:aFont
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   886
    "set the font for drawing if it has changed.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   887
     This should be redefined in some widget to perform an automatic
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   888
     redraw. See also: #basicFont:"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   889
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   890
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   891
        super font:aFont.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   892
    ] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   893
        gc font:aFont.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   894
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   895
    self changed:#font.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   896
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   897
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   898
function
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   899
    "return the current drawing function"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   900
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   901
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   902
	^ super function.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   903
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   904
    ^ gc function
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   905
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   906
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   907
function:aSymbol
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   908
    "set the drawing function if it has changed"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   909
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   910
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   911
	super function:aSymbol.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   912
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   913
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   914
    gc function:aSymbol
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   915
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   916
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   917
gcId
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   918
    "return the receivers graphic context id on the device"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   919
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   920
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   921
        ^ super gcId.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   922
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   923
    gc isNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   924
        ^ nil.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   925
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   926
    ^ gc gcId.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   927
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   928
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   929
graphicsContext
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   930
    "for ST-80 compatibility"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   931
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   932
    ^ gc
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   933
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   934
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   935
graphicsDevice
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   936
    "same as #device, for ST-80 compatibility"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   937
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   938
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   939
        ^ super graphicsDevice.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   940
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   941
    gc isNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   942
        ^ nil.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   943
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   944
    ^ gc graphicsDevice
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   945
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   946
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   947
height
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   948
    "return the height of the receiver"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   949
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   950
    ^ height
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   951
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   952
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   953
height:anInteger
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   954
    "set the height of the receiver"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   955
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   956
    height := anInteger
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   957
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   958
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   959
id
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   960
    "return the id of the drawable on the device"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   961
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   962
    ^ self drawableId
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   963
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   964
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   965
joinStyle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   966
    "return the current join-style for polygon-drawing.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   967
     possible styles are: #miter, #bevel, #round"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   968
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   969
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   970
	^ super joinStyle.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   971
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   972
    ^ gc joinStyle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   973
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   974
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   975
joinStyle:aStyleSymbol
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   976
    "set the join-style of lines in polygon-drawing;
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   977
     possible styles are: #miter, #bevel, #round"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   978
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   979
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   980
	super joinStyle:aStyleSymbol.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   981
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   982
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   983
    gc joinStyle:aStyleSymbol
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   984
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   985
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   986
left
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   987
    "return the left i.e. x-coordinate of top-left of the receiver"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   988
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   989
    ^ 0
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   990
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   991
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   992
leftCenter
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   993
    "return the leftCenter point"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   994
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   995
    ^ (self left) @ (self top + (height // 2) - 1)
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   996
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   997
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   998
lineStyle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   999
    "return the current line-drawing-style.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1000
     possible styles are: #solid, #dashed, #doubleDashed,
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1001
     #dotted, #dashDot or #dashDotDot."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1002
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1003
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1004
	^ super lineStyle.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1005
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1006
    ^ gc lineStyle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1007
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1008
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1009
lineStyle:aStyleSymbol
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1010
    "set the line-drawing-style;
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1011
     possible styles are: #solid, #dashed, #doubleDashed,
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1012
     #dotted, #dashDot or #dashDotDot."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1013
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1014
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1015
	super lineStyle:aStyleSymbol.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1016
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1017
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1018
    gc lineStyle:aStyleSymbol
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1019
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1020
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1021
lineWidth
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1022
    "return the current drawing linewidth"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1023
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1024
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1025
	^ super lineWidth.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1026
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1027
    ^ gc lineWidth
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1028
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1029
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1030
lineWidth:aNumber
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1031
    "set the line drawing width in pixels"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1032
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1033
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1034
	super lineWidth:aNumber.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1035
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1036
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1037
    gc lineWidth:aNumber
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1038
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1039
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1040
mask
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1041
    "return the current drawing mask"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1042
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1043
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1044
	^ super mask.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1045
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1046
    ^ gc mask
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1047
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1048
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1049
mask:aForm
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1050
    "set the drawing mask"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1051
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1052
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1053
	super mask:aForm.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1054
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1055
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1056
    gc mask:aForm
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1057
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1058
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1059
maskOrigin
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1060
    "return the origin within the mask (used to draw with patterns).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1061
     Should be redefined in classes which support it.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1062
     This is an alias for ST-80's #phase"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1063
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1064
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1065
	^ super maskOrigin.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1066
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1067
    ^ gc maskOrigin
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1068
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1069
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1070
maskOrigin:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1071
    "set the origin within the mask (used to draw with patterns).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1072
     Should be redefined in classes which support it.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1073
     This is an alias for ST-80's #phase:"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1074
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1075
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1076
	super maskOrigin:aPoint.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1077
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1078
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1079
    gc maskOrigin:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1080
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1081
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1082
maskOriginX:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1083
    "set the origin within the mask (used to draw with patterns).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1084
     Should be redefined in classes which support it.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1085
     This is an alias for ST-80's #phase:"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1086
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1087
    self maskOrigin:(x @ y)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1088
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1089
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1090
medium
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1091
    "return the destination medium i.e. the underlying graphics device"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1092
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1093
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1094
        ^ super graphicsDevice.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1095
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1096
    ^ gc graphicsDevice
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1097
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1098
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1099
noClipByChildren
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1100
    "drawing shall also be done into subviews"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1101
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1102
    <resource:#obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1103
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1104
    self obsoleteMethodWarning:'use #clippedByChildren:false'.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1105
    ^ self clippedByChildren:false
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1106
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1107
    "Created: 17.7.1996 / 14:15:54 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1108
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1109
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1110
origin
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1111
    "return the origin i.e. coordinate of top-left of the receiver"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1112
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1113
    ^ 0 @ 0
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1114
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1115
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1116
paint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1117
    "return the current paint drawing color"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1118
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1119
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1120
	^ super paint.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1121
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1122
    ^ gc paint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1123
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1124
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1125
paint:aColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1126
    "set the drawing painting color, aColor can be a dithered one"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1127
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1128
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1129
	super paint:aColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1130
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1131
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1132
    gc paint:aColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1133
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1134
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1135
paint:fgColor on:bgColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1136
    "set the paint and backgroundPaint, used for text and bitmaps.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1137
     Both colors may be dithered colors"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1138
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1139
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1140
	super paint:fgColor on:bgColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1141
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1142
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1143
    gc paint:fgColor on:bgColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1144
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1145
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1146
paint:fgColor on:bgColor function:f
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1147
    "set paint, background-paint and function"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1148
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1149
    self paint:fgColor on:bgColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1150
    self function:f
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1151
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1152
    "Modified: 16.5.1996 / 15:36:35 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1153
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1154
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  1155
realized
2954
0182e5ac0247 added #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2947
diff changeset
  1156
    "return true, if the receiver is realized.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1157
     The receiver may still be unmapped, if the container is unrealized.
2955
8b8000553767 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2954
diff changeset
  1158
     Use reallyRealized to make certain that I am really mapped."
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  1159
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  1160
    ^ realized
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  1161
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  1162
2955
8b8000553767 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2954
diff changeset
  1163
reallyRealized
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1164
    "return true, if the receiver is realized and all containers
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1165
     are realized."
2955
8b8000553767 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2954
diff changeset
  1166
8b8000553767 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2954
diff changeset
  1167
    ^ self realized
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1168
2955
8b8000553767 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2954
diff changeset
  1169
!
8b8000553767 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2954
diff changeset
  1170
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1171
rightCenter
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1172
    "return the leftCenter point"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1173
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1174
    ^ (self left + width - 1) @ (self top + (height // 2) - 1)
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1175
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1176
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1177
setClippingBounds:aRectangleOrNil
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1178
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1179
        super setClippingBounds:aRectangleOrNil.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1180
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1181
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1182
    gc setClippingBounds:aRectangleOrNil
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1183
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1184
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1185
setGraphicsExposures:aBoolean
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1186
    "want to if aBoolean is true - or don't want to be notified
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1187
     of graphics exposures"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1188
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1189
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1190
	super setGraphicsExposures:aBoolean.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1191
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1192
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1193
    gc setGraphicsExposures:aBoolean
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1194
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1195
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1196
setMaskOrigin:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1197
    <resource: #obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1198
    "set the origin within the mask (used to draw with patterns).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1199
     OBSOLETE: use #maskOrigin: or #phase:"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1200
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1201
    self obsoleteMethodWarning:'use #maskOrigin:'.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1202
    ^ self maskOriginX:aPoint x y:aPoint y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1203
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1204
    "Modified: / 26.1.1998 / 18:54:14 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1205
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1206
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1207
setMaskOriginX:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1208
    <resource: #obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1209
    "set the origin within the mask (used to draw with patterns).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1210
     OBSOLETE: use #maskOriginX:y: or #phase:"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1211
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1212
    self obsoleteMethodWarning:'use #maskOriginX:y:'.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1213
    ^ self maskOriginX:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1214
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1215
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1216
setWidth:w height:h
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1217
    "set both width and height - not to be redefined"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1218
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1219
    width := w.
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1220
    height := h
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1221
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1222
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1223
top
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1224
    "return the top i.e. y-coordinate of top-left of the receiver"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1225
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1226
    ^ 0
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1227
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1228
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1229
topCenter
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1230
    "return the topCenter point"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1231
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1232
    ^ (self left + (width//2) - 1) @ (self top)
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1233
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1234
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1235
topRight
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1236
    "return the topRight point"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1237
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1238
    ^ (self left + width - 1) @ (self top)
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1239
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1240
2030
5b29d7626887 added #viewBackground for protocol compatibility with real views.
ca
parents: 741
diff changeset
  1241
viewBackground
5b29d7626887 added #viewBackground for protocol compatibility with real views.
ca
parents: 741
diff changeset
  1242
    "for protocol compatibility with view; return my background paint color here"
5b29d7626887 added #viewBackground for protocol compatibility with real views.
ca
parents: 741
diff changeset
  1243
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1244
    ^ self backgroundPaint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1245
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1246
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1247
viewOrigin
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1248
    "return the drawables visible origin (for scrolling)"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1249
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1250
    ^ 0@0
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1251
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1252
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1253
whiteColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1254
    gc isNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1255
        ^ Color white.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1256
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1257
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1258
        ^ super graphicsDevice whiteColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1259
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1260
    ^ gc graphicsDevice whiteColor
2030
5b29d7626887 added #viewBackground for protocol compatibility with real views.
ca
parents: 741
diff changeset
  1261
!
5b29d7626887 added #viewBackground for protocol compatibility with real views.
ca
parents: 741
diff changeset
  1262
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1263
width
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1264
    "return the width of the receiver"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1265
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1266
    ^ width
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1267
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1268
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1269
width:anInteger
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1270
    "set the width of the receiver"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1271
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1272
    width := anInteger
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1273
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1274
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1275
width:w height:h
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1276
    "set both width and height of the receiver"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1277
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1278
    width := w.
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1279
    height := h
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1280
! !
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1281
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1282
!GraphicsMedium methodsFor:'accessing-internals'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1283
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1284
background
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1285
    <resource: #obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1286
    "return the current background drawing color.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1287
     OBSOLETE: use #paint: / #backgroundPaint: / #paint:on:"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1288
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1289
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1290
	^ super background.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1291
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1292
    ^ gc background
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1293
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1294
    "Modified: 12.5.1996 / 22:28:09 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1295
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1296
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1297
background:aColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1298
    <resource: #obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1299
    "set the internal background color for drawing - aColor must be a real color.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1300
     OBSOLETE: this method will vanish; use #paint: / #backgroundPaint: / #paint:on:"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1301
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1302
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1303
	super background:aColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1304
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1305
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1306
    gc background:aColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1307
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1308
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1309
foreground
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1310
    <resource: #obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1311
    "return the current foreground drawing color.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1312
     OBSOLETE: use #paint: / #paint:on:"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1313
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1314
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1315
	^ super foreground.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1316
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1317
    ^ gc foreground
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1318
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1319
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1320
foreground:aColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1321
    <resource: #obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1322
    "set the internal foreground color for drawing - aColor must be a real color.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1323
     OBSOLETE: this method will vanish; use #paint: / #paint:on:"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1324
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1325
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1326
	super foreground:aColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1327
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1328
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1329
    gc foreground:aColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1330
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1331
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1332
foreground:fgColor background:bgColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1333
    <resource: #obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1334
    "set both internal foreground and internal background colors
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1335
     - these must be real colors.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1336
     OBSOLETE: this method will vanish; use #paint: / #paint:on:"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1337
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1338
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1339
	super foreground:fgColor background:bgColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1340
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1341
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1342
    gc foreground:fgColor background:bgColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1343
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1344
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1345
foreground:fgColor background:bgColor function:fun
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1346
    <resource: #obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1347
    "set foreground, background colors and function.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1348
     OBSOLETE: this method will vanish; use #paint: / #paint:on:"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1349
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1350
    self foreground:fgColor background:bgColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1351
    self function:fun
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1352
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1353
    "Modified: 12.5.1996 / 22:28:34 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1354
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1355
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1356
foreground:aColor function:fun
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1357
    <resource: #obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1358
    "set the foreground color and function for drawing.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1359
     OBSOLETE: this method will vanish; use #paint: / #paint:on:"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1360
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1361
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1362
	super foreground:aColor function:fun.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1363
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1364
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1365
    gc foreground:aColor function:fun
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1366
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1367
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1368
setRealized:aBoolean
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1369
    "low level special interface to manipulate the realized state.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1370
     Non-public interface, only to be used by experts.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1371
     (use to pretend a view has been realized - for example with alien views)"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1372
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1373
    realized := aBoolean
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1374
! !
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1375
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1376
!GraphicsMedium methodsFor:'accessing-transformation'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1377
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1378
scale
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1379
    "return the scale factor (as point) of the transformation"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1380
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1381
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1382
        ^ super scale.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1383
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1384
    ^ gc scale
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1385
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1386
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1387
scale:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1388
    "set the scale factor of the transformation"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1389
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1390
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1391
        super scale:aPoint.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1392
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1393
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1394
    ^ gc scale:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1395
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1396
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1397
transformation 
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1398
    "return the transformation"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1399
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1400
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1401
        ^ super transformation.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1402
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1403
    ^ gc transformation
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1404
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1405
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1406
transformation:aTransformation 
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1407
    "set the transformation"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1408
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1409
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1410
        super transformation:aTransformation.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1411
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1412
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1413
    ^ gc transformation:aTransformation
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1414
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1415
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1416
translateBy:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1417
    "add to the translation offset of the transformation"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1418
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1419
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1420
        super translateBy:aPoint.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1421
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1422
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1423
    ^ gc translateBy:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1424
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1425
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1426
translation
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1427
    "return the translation factor (as point) of the transformation"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1428
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1429
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1430
        ^ super translation.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1431
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1432
    ^ gc translation
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1433
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1434
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1435
translation:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1436
    "set the translation offset of the transformation"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1437
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1438
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1439
        super translation:aPoint.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1440
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1441
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1442
    ^ gc translation:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1443
! !
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1444
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1445
!GraphicsMedium methodsFor:'basic drawing'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1446
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1447
displayArcX:x y:y width:width height:height from:startAngle angle:angle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1448
    "draw an arc in a box
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1449
     - this could be recoded to draw using displayLine"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1450
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1451
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1452
	super displayArcX:x y:y width:width height:height from:startAngle angle:angle.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1453
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1454
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1455
    gc displayArcX:x y:y width:width height:height from:startAngle angle:angle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1456
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1457
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1458
displayDottedRectangleX:x y:y width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1459
    "draw a dotted-line rectangle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1460
     A general implementation is found here; deviceGC's
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1461
     may reimplement this if directly supported by the device"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1462
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1463
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1464
	super displayDottedRectangleX:x y:y width:w height:h.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1465
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1466
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1467
    gc displayDottedRectangleX:x y:y width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1468
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1469
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1470
displayHorizontalWavelineFromX:x0 y:y0 toX:x1
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1471
    "draw a horizontal wave-line from x0/y0 to x1/y0"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1473
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1474
	super displayHorizontalWavelineFromX:x0 y:y0 toX:x1.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1475
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1476
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1477
    gc displayHorizontalWavelineFromX:x0 y:y0 toX:x1
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1478
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1479
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1480
displayLineFromX:x0 y:y0 toX:x1 y:y1
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1481
    "draw a line from x0/y0 to x1/y1"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1482
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1483
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1484
	super displayLineFromX:x0 y:y0 toX:x1 y:y1.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1485
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1486
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1487
    gc displayLineFromX:x0 y:y0 toX:x1 y:y1
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1488
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1489
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1490
displayOpaqueForm:aForm x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1491
    "draw a form at x/y; if the form has depth 1, 1's in the form are
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1492
     drawn in current fg, 0's in current bg color.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1493
     If the form has depth ~~ 1, it is copied as is onto the receiver"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1494
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1495
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1496
	super displayOpaqueForm:aForm x:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1497
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1498
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1499
    gc displayOpaqueForm:aForm x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1500
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1501
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1502
displayOpaqueString:aString from:index1 to:index2 x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1503
    "draw part of a string with both fg and bg at x/y in current font"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1504
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1505
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1506
        super displayString:aString from:index1 to:index2 x:x y:y opaque:true maxWidth:self width.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1507
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1508
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1509
    gc displayString:aString from:index1 to:index2 x:x y:y opaque:true maxWidth:self width
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1510
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1511
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1512
displayPolygon:aPolygon
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1513
    "draw a polygon
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1514
     - this could be recoded to draw using displayLine"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1515
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1516
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1517
	super displayPolygon:aPolygon.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1518
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1519
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1520
    gc displayPolygon:aPolygon
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1521
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1522
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1523
displayRectangleX:x y:y width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1524
    "draw a rectangle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1525
     - this could be recoded to draw using displayLine"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1526
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1527
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1528
	super displayRectangleX:x y:y width:w height:h.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1529
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1530
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1531
    gc displayRectangleX:x y:y width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1532
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1533
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1534
displayString:aString from:index1 to:index2 x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1535
    "draw part of a string with fg at x/y in current font"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1536
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1537
    gc displayString:aString from:index1 to:index2 x:x y:y opaque:false maxWidth:self width
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1538
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1539
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1540
displayString:aString from:index1 to:index2 x:x y:y opaque:opaque
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1541
    "draw part of a string with both fg and bg at x/y in current font"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1542
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1543
    self displayString:aString from:index1 to:index2 x:x y:y opaque:opaque maxWidth:self width.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1544
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1545
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1546
displayString:aString from:index1 to:index2 x:x y:y opaque:opaque maxWidth:maxWidth
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1547
    "draw part of a string with both fg and bg at x/y in current font"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1548
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1549
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1550
        super displayString:aString from:index1 to:index2 x:x y:y opaque:opaque maxWidth:maxWidth.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1551
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1552
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1553
    gc displayString:aString from:index1 to:index2 x:x y:y opaque:opaque maxWidth:maxWidth
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1554
! !
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1555
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1556
!GraphicsMedium methodsFor:'basic filling'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1557
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1558
fillArcX:x y:y width:w height:h from:start angle:angle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1559
    "fill an arc with current paint color"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1560
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1561
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1562
	super fillArcX:x y:y width:w height:h from:start angle:angle.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1563
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1564
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1565
    gc fillArcX:x y:y width:w height:h from:start angle:angle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1566
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1567
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1568
fillPolygon:points
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1569
    "fill a polygon with current paint color"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1570
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1571
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1572
	super fillPolygon:points.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1573
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1574
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1575
    gc fillPolygon:points
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1576
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1577
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1578
fillRectangleX:x y:y width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1579
    "fill a rectangle with current paint color"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1580
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1581
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1582
	super fillRectangleX:x y:y width:w height:h.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1583
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1584
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1585
    gc fillRectangleX:x y:y width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1586
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1587
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1588
fillRectangleX:x y:y width:w height:h color:aColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1589
    "fill a rectangle with given color"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1590
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1591
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1592
	super fillRectangleX:x y:y width:w height:h color:aColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1593
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1594
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1595
    gc fillRectangleX:x y:y width:w height:h color:aColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1596
! !
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1597
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1598
!GraphicsMedium methodsFor:'bit blitting'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1599
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1600
copyBitsFrom:aByteArray bitsPerPixel:bpp depth:depth padding:pad width:srcW height:srcH x:srcX y:srcY toX:dstX y:dstY
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1601
    "copy bits from a smalltalk byteArray.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1602
     The bits found there are supposed to be in the devices native format (i.e.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1603
     translated to allocated color indices on pseudoColor devices and padded as required.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1604
     The byteOrder is MSB and will be converted as appropriate by the underlying devices
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1605
     method to whatever the device needs."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1606
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1607
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1608
	super copyBitsFrom:aByteArray bitsPerPixel:bpp depth:depth padding:pad width:srcW height:srcH x:srcX y:srcY toX:dstX y:dstY.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1609
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1610
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1611
    gc copyBitsFrom:aByteArray bitsPerPixel:bpp depth:depth padding:pad width:srcW height:srcH x:srcX y:srcY toX:dstX y:dstY
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1612
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1613
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1614
copyBitsFrom:aByteArray bitsPerPixel:bpp depth:depth width:srcW height:srcH x:srcX y:srcY toX:dstX y:dstY
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1615
    "copy bits from a smalltalk byteArray.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1616
     The bits found there are supposed to be in the devices native format (i.e.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1617
     translated to allocated color indices on pseudoColor devices and padded as required.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1618
     The byteOrder is MSB and will be converted as appropriate by the underlying devices
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1619
     method to whatever the device needs.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1620
     Assumes the source bits are in ST/X's natural padding (i.e. 8-bit padded)"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1621
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1622
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1623
	super copyBitsFrom:aByteArray bitsPerPixel:bpp depth:depth width:srcW height:srcH x:srcX y:srcY toX:dstX y:dstY.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1624
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1625
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1626
    gc copyBitsFrom:aByteArray bitsPerPixel:bpp depth:depth width:srcW height:srcH x:srcX y:srcY toX:dstX y:dstY
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1627
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1628
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1629
copyFrom:aGC toX:dstX y:dstY
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1630
    "copy from a drawable - maybe self"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1631
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1632
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1633
	super copyFrom:aGC toX:dstX y:dstY.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1634
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1635
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1636
    gc copyFrom:aGC toX:dstX y:dstY
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1637
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1638
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1639
copyFrom:aGC x:srcX y:srcY toX:dstX y:dstY width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1640
    "copy from a drawable - maybe self"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1641
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1642
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1643
	super copyFrom:aGC x:srcX y:srcY toX:dstX y:dstY width:w height:h.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1644
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1645
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1646
    gc copyFrom:aGC x:srcX y:srcY toX:dstX y:dstY width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1647
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1648
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1649
copyFrom:aDrawable x:srcX y:srcY toX:dstX y:dstY width:w height:h async:async
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1650
    "copy from aDrawable into the receiver;
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1651
     the source may be the receiver as well - in this case its a scroll.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1652
     All coordinates are in device coordinates.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1653
     If the receiver is a view AND async is true, the call returns immediately
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1654
     - otherwise, it returns when the scroll operation is finished.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1655
     (not all devices care for this).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1656
     If the receiver is a pixmap, the call always returns immediately."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1657
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1658
    |myDevice deviceDrawable asy|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1659
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1660
    myDevice := gc graphicsDevice.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1661
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1662
    ((aDrawable graphicsDevice ~~ myDevice)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1663
     or:[aDrawable isImage]) ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1664
        deviceDrawable := aDrawable asFormOn:myDevice.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1665
    ] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1666
        deviceDrawable := aDrawable
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1667
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1668
    asy := async or:[self isView not].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1669
    asy ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1670
        self catchExpose
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1671
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1672
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1673
        super copyFrom:deviceDrawable x:srcX y:srcY toX:dstX y:dstY width:w height:h async:async.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1674
    ] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1675
        gc copyFrom:deviceDrawable x:srcX y:srcY toX:dstX y:dstY width:w height:h async:async.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1676
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1677
    asy ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1678
        myDevice flush.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1679
        self waitForExpose
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1680
    ]
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1681
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1682
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1683
copyFrom:aGC x:dstX y:dstY width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1684
    "copy from a drawable - maybe self"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1685
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1686
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1687
	super copyFrom:aGC x:dstX y:dstY width:w height:h.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1688
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1689
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1690
    gc copyFrom:aGC x:dstX y:dstY width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1691
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1692
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1693
copyPlaneFrom:aDrawable x:srcX y:srcY toX:dstX y:dstY width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1694
    "copy one plane from aDrawable into the receiver. 0's are drawn in
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1695
     background, while 1's are drawn with foreground color.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1696
     The depth of aDrawable must (should) be 1.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1697
     The drawable must have been allocated on the same device.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1698
     All coordinates are in device coordinates."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1699
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1700
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1701
	super copyPlaneFrom:aDrawable x:srcX y:srcY toX:dstX y:dstY width:w height:h.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1702
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1703
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1704
    gc copyPlaneFrom:aDrawable x:srcX y:srcY toX:dstX y:dstY width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1705
! !
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1706
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  1707
!GraphicsMedium methodsFor:'copying'!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  1708
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  1709
postCopy
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  1710
    "this may not be enough to allow copying of views ..."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  1711
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  1712
    super postCopy.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  1713
    realized := false.
4403
3342601d3fed +postDeepCopy
Claus Gittinger <cg@exept.de>
parents: 4068
diff changeset
  1714
!
3342601d3fed +postDeepCopy
Claus Gittinger <cg@exept.de>
parents: 4068
diff changeset
  1715
3342601d3fed +postDeepCopy
Claus Gittinger <cg@exept.de>
parents: 4068
diff changeset
  1716
postDeepCopy
3342601d3fed +postDeepCopy
Claus Gittinger <cg@exept.de>
parents: 4068
diff changeset
  1717
    super postDeepCopy.
3342601d3fed +postDeepCopy
Claus Gittinger <cg@exept.de>
parents: 4068
diff changeset
  1718
    realized := false.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  1719
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  1720
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1721
!GraphicsMedium methodsFor:'drawing'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1722
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1723
display:someObject at:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1724
    "draw someObject - this must understand the #displayOn:at: message"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1725
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1726
    someObject displayOn:self at:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1727
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1728
    "Created: 28.5.1996 / 14:22:57 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1729
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1730
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1731
displayArcIn:aRectangle from:startAngle angle:angle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1732
    "draw an arc in a box"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1733
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1734
    self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1735
	displayArcX:(aRectangle left)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1736
		  y:(aRectangle top)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1737
	      width:(aRectangle width)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1738
	     height:(aRectangle height)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1739
	       from:startAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1740
	      angle:angle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1741
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1742
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1743
displayArcOrigin:origin corner:corner from:startAngle angle:angle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1744
    "draw an arc in a box"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1745
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1746
    |left top right bot|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1747
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1748
    left := origin x.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1749
    top := origin y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1750
    right := corner x.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1751
    bot := corner y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1752
    self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1753
	displayArcX:left
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1754
		  y:top
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1755
	      width:(right - left + 1)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1756
	     height:(bot - top + 1)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1757
	       from:startAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1758
	      angle:angle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1759
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1760
    "Modified: 8.5.1996 / 08:35:25 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1761
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1762
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1763
displayArcX:x y:y w:w h:h from:startAngle angle:angle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1764
    "draw an arc; apply transformation if nonNil"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1765
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1766
    <resource:#obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1767
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1768
    self obsoleteMethodWarning:'use #displayArcX:y:width:height:from:angle:'.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1769
    self displayArcX:x y:y width:w height:h from:startAngle angle:angle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1770
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1771
    "Modified: 8.5.1996 / 08:46:56 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1772
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1773
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1774
displayCircle:aPoint radius:r
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1775
    "draw a circle around a center point"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1776
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1777
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1778
	super displayCircleX:(aPoint x) y:(aPoint y) radius:r.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1779
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1780
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1781
    gc displayCircleX:(aPoint x) y:(aPoint y) radius:r
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1782
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1783
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1784
displayCircleIn:aRectangle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1785
    "draw a circle in a box"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1786
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1787
    self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1788
	displayArcX:(aRectangle left)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1789
		  y:(aRectangle top)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1790
	      width:(aRectangle width)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1791
	     height:(aRectangle height)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1792
	       from:0
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1793
	      angle:360
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1794
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1795
    "Modified: 8.5.1996 / 08:35:40 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1796
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1797
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1798
displayCircleX:x y:y radius:r
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1799
    "draw a circle around a center point"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1800
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1801
    |d|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1802
    d := 2 * r.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1803
    self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1804
	displayArcX:(x - r)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1805
		  y:(y - r)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1806
	      width:d
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1807
	     height:d
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1808
	       from:0
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1809
	      angle:360
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1810
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1811
    "Modified: 8.5.1996 / 08:36:03 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1812
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1813
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1814
displayForm:aFormOrImage
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1815
    "draw a form (or image) at the origin"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1816
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1817
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1818
	super displayForm:aFormOrImage x:0 y:0.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1819
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1820
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1821
    gc displayForm:aFormOrImage x:0 y:0
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1822
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1823
    "Modified: / 24.4.1997 / 16:00:11 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1824
    "Created: / 9.11.1997 / 00:50:52 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1825
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1826
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1827
displayForm:aFormOrImage at:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1828
    "draw a form (or image)"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1829
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1830
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1831
	super displayForm:aFormOrImage x:(aPoint x) y:(aPoint y).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1832
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1833
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1834
    gc displayForm:aFormOrImage x:(aPoint x) y:(aPoint y)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1835
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1836
    "Modified: 24.4.1997 / 16:00:11 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1837
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1838
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1839
displayForm:formToDraw x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1840
    "draw a form or image non opaque;
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1841
     if its a 1-plane bitmap, 1-bits are drawn in the
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1842
     current paint-color, leaving pixels with 0-bits unchanged
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1843
     (i.e. only 1-bits are drawn from the form).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1844
     If its a deep form (i.e. a pixmap) the current paint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1845
     settings are ignored and the form is drawn as-is.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1846
     Care must be taken, that the paint color is correctly allocated
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1847
     (by sending #on: to the color) before doing so.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1848
     Using functions other than #copy only makes sense if you are
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1849
     certain, that the colors are real colors (actually, only for
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1850
     noColor or allColor)."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1851
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1852
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1853
	super displayForm:formToDraw x:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1854
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1855
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1856
    gc displayForm:formToDraw x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1857
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1858
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1859
displayForm:aFormOrImage x:x y:y opaque:opaque
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1860
    "draw a form (or image) at x/y;
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1861
     if the form has depth 1, 1's in the form are
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1862
     drawn in current paint color, 0's are ignored.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1863
     If the form has depth ~~ 1, the current fg color setting is ignored."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1864
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1865
    opaque ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1866
	self displayOpaqueForm:aFormOrImage x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1867
    ] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1868
	self displayForm:aFormOrImage x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1869
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1870
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1871
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1872
displayImage:aFormOrImage
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1873
    "draw an image (or form).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1874
     Provided for ST-80 compatibilty;
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1875
     in ST/X, images are also handled by #displayForm:"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1876
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1877
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1878
	super displayForm:aFormOrImage x:0 y:0.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1879
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1880
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1881
    gc displayForm:aFormOrImage x:0 y:0
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1882
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1883
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1884
displayImage:aFormOrImage at:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1885
    "draw an image (or form).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1886
     Provided for ST-80 compatibilty;
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1887
     in ST/X, images are also handled by #displayForm:"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1888
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1889
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1890
	super displayForm:aFormOrImage x:(aPoint x) y:(aPoint y).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1891
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1892
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1893
    gc displayForm:aFormOrImage x:(aPoint x) y:(aPoint y)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1894
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1895
    "Modified: 24.4.1997 / 16:02:43 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1896
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1897
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1898
displayImage:aFormOrImage x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1899
    "draw an image (or form).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1900
     Provided for ST-80 compatibilty;
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1901
     in ST/X, images are also handled by #displayForm:"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1902
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1903
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1904
	super displayForm:aFormOrImage x:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1905
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1906
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1907
    gc displayForm:aFormOrImage x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1908
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1909
    "Created: 24.4.1997 / 16:03:03 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1910
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1911
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1912
displayLineFrom:point1 to:point2
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1913
    "draw a line"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1914
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1915
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1916
	super displayLineFromX:(point1 x) y:(point1 y)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1917
		      toX:(point2 x) y:(point2 y).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1918
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1919
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1920
    gc displayLineFromX:(point1 x) y:(point1 y)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1921
		      toX:(point2 x) y:(point2 y)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1922
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1923
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1924
displayLineFromX:xStart y:yStart toX:xEnd y:yEnd brush:aForm
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1925
    "draw a line using a brush.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1926
     Here, a slow fallback is used, drawing into a
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1927
     temporary bitmap first, which is then displayed"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1928
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1929
    |deltaX deltaY dx dy px py destX destY p tempForm
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1930
     xMin xMax yMin yMax x1 x2 y1 y2|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1931
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1932
    xStart < xEnd ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1933
        xMin := xStart.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1934
        xMax := xEnd.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1935
    ] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1936
        xMin := xEnd.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1937
        xMax := xStart
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1938
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1939
    yStart < yEnd ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1940
        yMin := yStart.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1941
        yMax := yEnd.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1942
    ] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1943
        yMin := yEnd.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1944
        yMax := yStart
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1945
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1946
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1947
    tempForm := Form width:(xMax-xMin+1+aForm width)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1948
                     height:(yMax-yMin+1+aForm height)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1949
                     depth:aForm depth
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1950
                     onDevice:self graphicsDevice.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1951
    tempForm clear.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1952
    tempForm paint:(Color colorId:1) on:(Color colorId:0).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1953
    tempForm function:#or.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1954
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1955
    ((yStart = yEnd and:[xStart < xEnd])
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1956
    or: [yStart < yEnd]) ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1957
        x1 := xStart. y1 := yStart.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1958
        x2 := xEnd. y2 := yEnd.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1959
    ] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1960
        x1 := xEnd. y1 := yEnd.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1961
        x2 := xStart. y2 := yStart.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1962
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1963
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1964
    x1 := x1 - xMin.  x2 := x2 - xMin.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1965
    y1 := y1 - yMin.  y2 := y2 - yMin.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1966
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1967
    destX := x1.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1968
    destY := y1.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1969
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1970
    "/ bresenham ...
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1971
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1972
    deltaX := x2 - x1.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1973
    deltaY := y2 - y1.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1974
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1975
    dx := deltaX sign.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1976
    dy := deltaY sign.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1977
    px := deltaY abs.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1978
    py := deltaX abs.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1979
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1980
    tempForm displayForm:aForm x:destX y:destY.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1981
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1982
    py > px ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1983
        "horizontal"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1984
        p := py // 2.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1985
        py timesRepeat:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1986
            destX := destX + dx.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1987
            (p := p - px) < 0 ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1988
                destY := destY + dy.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1989
                p := p + py
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1990
            ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1991
            tempForm displayForm:aForm x:destX y:destY.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1992
        ]
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1993
    ] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1994
        "vertical"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1995
        p := px // 2.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1996
        px timesRepeat:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1997
            destY := destY + dy.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1998
            (p := p - py) < 0 ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1999
                destX := destX + dx.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2000
                p := p + px
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2001
            ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2002
            tempForm displayForm:aForm x:destX y:destY
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2003
        ]
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2004
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2005
    self displayForm:tempForm
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2006
                   x:xMin-aForm offset x
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2007
                   y:yMin-aForm offset y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2008
    tempForm close
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2009
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2010
    "Modified: 1.4.1997 / 21:29:06 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2011
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2012
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2013
displayOpaqueString:aString at:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2014
    "draw a string with both fg and bg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2015
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2016
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2017
	super displayOpaqueString:aString x:(aPoint x) y:(aPoint y).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2018
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2019
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2020
    gc displayOpaqueString:aString x:(aPoint x) y:(aPoint y)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2021
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2022
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2023
displayOpaqueString:aString from:start to:stop at:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2024
    "draw part of a string - drawing both fg and bg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2025
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2026
    gc displayString:aString from:start to:stop x:aPoint x y:aPoint x opaque:true maxWidth:self width.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2027
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2028
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2029
displayOpaqueString:aString x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2030
    "draw a string at the coordinate x/y - draw foreground pixels in paint-color,
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2031
     background pixels in bgPaint color. If the transformation involves scaling,
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2032
     the fonts point-size is scaled as appropriate.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2033
     Assuming that device can only draw in device colors, we have to handle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2034
     the case where paint and/or bgPaint are dithered colors or images."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2035
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2036
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2037
	super displayOpaqueString:aString x:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2038
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2039
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2040
    gc displayOpaqueString:aString x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2041
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2042
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2043
displayOpaqueString:aString x:x y:y angle:drawAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2044
    "draw a string along a (possibly non-horizontal) line,
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2045
     drawing both fg and bg pixels.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2046
     The angle is in degrees, clock-wise, starting with 0 for
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2047
     a horizontal draw.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2048
     Drawing is done by first drawing the string into a temporary bitmap,
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2049
     which is rotated and finally drawn as usual.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2050
     NOTICE: due to the rotation of the temporary bitmap, this is a slow
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2051
	     operation - not to be used with cillions of strings ..."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2052
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2053
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2054
	super displayString:aString x:x y:y angle:drawAngle opaque:true.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2055
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2056
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2057
    gc displayString:aString x:x y:y angle:drawAngle opaque:true
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2058
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2059
    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2060
     |v|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2061
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2062
     v := View new.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2063
     v extent:300@200.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2064
     v openAndWait.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2065
     0 to:360 by:45 do:[:a |
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2066
	 v paint:Color black on:Color red.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2067
	 v displayOpaqueString:'hello world' x:100 y:100 angle:a.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2068
     ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2069
    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2070
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2071
    "in contrast to non-opaque draw:
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2072
     |v|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2073
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2074
     v := View new.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2075
     v extent:300@200.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2076
     v openAndWait.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2077
     0 to:360 by:45 do:[:a |
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2078
	 v paint:Color black on:Color red.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2079
	 v displayString:'hello world' x:100 y:100 angle:a.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2080
     ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2081
    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2082
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2083
    "Modified: 23.4.1997 / 17:50:23 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2084
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2085
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2086
displayPoint:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2087
    "draw a pixel"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2088
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2089
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2090
	super displayPointX:(aPoint x) y:(aPoint y).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2091
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2092
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2093
    gc displayPointX:(aPoint x) y:(aPoint y)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2094
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2095
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2096
displayPointX:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2097
    "draw a point (with current paint-color); apply transformation if nonNil"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2098
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2099
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2100
	super displayPointX:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2101
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2102
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2103
    gc displayPointX:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2104
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2105
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2106
displayRectangle:aRectangle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2107
    "draw a rectangle"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2108
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2109
    self displayRectangleX:(aRectangle left)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2110
			 y:(aRectangle top)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2111
		     width:(aRectangle width)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2112
		    height:(aRectangle height)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2113
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2114
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2115
displayRectangleOrigin:origin corner:corner
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2116
    "draw a rectangle"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2117
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2118
    |top left|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2119
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2120
    left := origin x.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2121
    top := origin y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2122
    self displayRectangleX:left y:top
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2123
		     width:(corner x - left)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2124
		    height:(corner y - top)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2125
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2126
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2127
displayRectangleOrigin:origin extent:extent
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2128
    "draw a rectangle"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2129
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2130
    self displayRectangleX:(origin x) y:(origin y)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2131
		     width:(extent x)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2132
		    height:(extent y)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2133
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2134
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2135
displayRoundRectangleX:left y:top width:width height:height wCorner:wCorn hCorner:hCorn
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2136
    |right bottom wC hC wHalf hHalf isWin32|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2137
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2138
    "/ BIG KLUDGE WARNING HERE: the code below looks "good" on windows displays;
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2139
    "/ (if you change anything under Unix, make it X-platform specific.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2140
    "/ (there seem to be drawing incompatibilities between Win- and XWorkstation)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2141
6581
757f060cd8f3 class: GraphicsMedium
Stefan Vogel <sv@exept.de>
parents: 6580
diff changeset
  2142
    isWin32 := self device isWindowsPlatform.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2143
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2144
    right := left + width-1.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2145
    bottom := top + height-1.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2146
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2147
    wC := wCorn.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2148
    hC := hCorn.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2149
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2150
    self scale = 1 ifTrue:[
6581
757f060cd8f3 class: GraphicsMedium
Stefan Vogel <sv@exept.de>
parents: 6580
diff changeset
  2151
        wHalf := wC // 2.
757f060cd8f3 class: GraphicsMedium
Stefan Vogel <sv@exept.de>
parents: 6580
diff changeset
  2152
        hHalf := hC // 2.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2153
    ] ifFalse:[
6581
757f060cd8f3 class: GraphicsMedium
Stefan Vogel <sv@exept.de>
parents: 6580
diff changeset
  2154
        wHalf := wC / 2.
757f060cd8f3 class: GraphicsMedium
Stefan Vogel <sv@exept.de>
parents: 6580
diff changeset
  2155
        hHalf := hC / 2.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2156
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2157
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2158
    "top left arc"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2159
    self displayArcX:left y:top width:wC height:hC from:90 angle:90.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2160
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2161
    "top right arc"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2162
    self displayArcX:(right - wC) y:top width:wC height:hC from:0 angle:90.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2163
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2164
    "bottom right arc"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2165
    (isWin32 and:[self scale = 1]) ifTrue:[
6581
757f060cd8f3 class: GraphicsMedium
Stefan Vogel <sv@exept.de>
parents: 6580
diff changeset
  2166
        self displayArcX:(right - wC+1) y:(bottom - hC+1) width:wC height:hC from:270 angle:90.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2167
    ] ifFalse:[
6581
757f060cd8f3 class: GraphicsMedium
Stefan Vogel <sv@exept.de>
parents: 6580
diff changeset
  2168
        self displayArcX:(right - wC) y:(bottom - hC) width:wC height:hC from:270 angle:90.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2169
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2170
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2171
    "bottom left arc"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2172
    self displayArcX:left y:(bottom - hC) width:wC height:hC from:180 angle:90.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2173
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2174
    "top line"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2175
    self displayLineFromX:(left + wHalf) y:top toX:(right - wHalf-1) y:top.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2176
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2177
    "left line"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2178
    self displayLineFromX:left y:(top + hHalf - 1) toX:left y:(bottom - hHalf - 2).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2179
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2180
    "bottom line"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2181
    self displayLineFromX:(left + wHalf-1) y:bottom
6581
757f060cd8f3 class: GraphicsMedium
Stefan Vogel <sv@exept.de>
parents: 6580
diff changeset
  2182
                      toX:(right - wHalf ) y:bottom.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2183
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2184
    "right line"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2185
    self displayLineFromX:right y:(top + hHalf) toX:right y:(bottom - hHalf).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2186
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2187
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2188
    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2189
     |v|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2190
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2191
     (v := View new) extent:200@200; openAndWait.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2192
     v displayRoundRectangleX:10 y:10 width:100 height:100 wCorner:20 hCorner:20
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2193
    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2194
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2195
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2196
displayString:aString at:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2197
    "draw a string - drawing fg only"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2198
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2199
    self displayString:aString x:aPoint x y:aPoint y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2200
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2201
6579
db31ebd19872 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 6472
diff changeset
  2202
displayString:aString centeredAt:aPoint
db31ebd19872 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 6472
diff changeset
  2203
    "draw a string - drawing fg only"
db31ebd19872 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 6472
diff changeset
  2204
db31ebd19872 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 6472
diff changeset
  2205
    self displayString:aString centeredAtX:aPoint x y:aPoint y
db31ebd19872 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 6472
diff changeset
  2206
!
db31ebd19872 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 6472
diff changeset
  2207
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2208
displayString:aString centeredAtX:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2209
    "draw a string - drawing fg only"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2210
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2211
    |w h|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2212
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2213
    w := aString widthOn:self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2214
    h := aString heightOn:self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2215
    self displayString:aString x:x-(w/2) y:y-(h/2)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2216
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2217
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2218
displayString:aString from:start to:stop at:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2219
    "draw part of a string - drawing fg only"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2220
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2221
    ^ self displayString:aString from:start to:stop x:aPoint x y:aPoint y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2222
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2223
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2224
displayString:aString x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2225
    "draw a string at the coordinate x/y -
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2226
     draw foreground-pixels only (in current paint-color),
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2227
     leaving background as-is. If the transformation involves scaling,
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2228
     the fonts point-size is scaled as appropriate."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2229
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2230
    self displayString:aString from:1 to:aString size x:x y:y opaque:false maxWidth:self width.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2231
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2232
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2233
displayString:aString x:x y:y angle:drawAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2234
    "draw a string along a (possibly non-horizontal) line - drawing fg only.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2235
     The angle is in degrees, clock-wise, starting with 0 for
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2236
     a horizontal draw.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2237
     Drawing is done by first drawing the string into a temporary bitmap,
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2238
     which is rotated and finally drawn as usual.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2239
     NOTICE: due to the rotation of the temporary bitmap, this is a slow
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2240
	     operation - not to be used with cillions of strings ..."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2241
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2242
    self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2243
	displayString:aString x:x y:y angle:drawAngle opaque:false
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2244
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2245
    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2246
     |v|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2247
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2248
     v := View new.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2249
     v extent:300@200.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2250
     v openAndWait.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2251
     0 to:360 by:90 do:[:a |
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2252
	 v paint:Color black.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2253
	 v displayString:'hello world' x:100 y:100 angle:a.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2254
     ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2255
    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2256
    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2257
     |v|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2258
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2259
     v := View new.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2260
     v extent:400@400.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2261
     v openAndWait.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2262
     0 to:360 by:5 do:[:a |
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2263
	 v paint:Color black.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2264
	 v displayString:'.........hello' x:200 y:200 angle:a.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2265
     ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2266
    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2267
    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2268
     |v|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2269
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2270
     v := View new.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2271
     v extent:200@100.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2272
     v openAndWait.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2273
     v displayString:' hello' x:90 y:50 angle:0.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2274
     v displayString:' hello' x:90 y:50 angle:45.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2275
     v displayString:' hello' x:90 y:50 angle:90.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2276
     v displayString:' hello' x:90 y:50 angle:180.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2277
     v displayString:' hello' x:90 y:50 angle:270.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2278
    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2279
    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2280
     |v|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2281
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2282
     v := View new.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2283
     v extent:200@100.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2284
     v openAndWait.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2285
     v displayString:'hello' x:50 y:50 angle:0.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2286
     v displayString:'hello' x:50 y:50 angle:45.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2287
     v displayString:'hello' x:50 y:50 angle:90.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2288
     v displayString:'hello' x:50 y:50 angle:135.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2289
     v displayString:'hello' x:50 y:50 angle:180.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2290
     v displayString:'hello' x:50 y:50 angle:225.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2291
     v displayString:'hello' x:50 y:50 angle:270.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2292
     v displayString:'hello' x:50 y:50 angle:315.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2293
    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2294
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2295
    "Modified: 24.4.1997 / 12:51:25 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2296
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2297
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2298
displayString:aString x:x y:y angle:drawAngle opaque:opaque
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2299
    "common code to draw a string along a (possibly non-horizontal) line.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2300
     The angle is in degrees, clock-wise, starting with 0 for
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2301
     a horizontal draw.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2302
     Drawing is done by first drawing the string into a temporary bitmap,
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2303
     which is rotated and finally drawn as usual.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2304
     NOTICE: due to the rotation of the temporary bitmap, this is a slow
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2305
	     operation - not to be used with cillions of strings ...
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2306
     CAVEAT: if the string is not a real string (i.e. a LabelAndIcon),
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2307
	     this can (currently) only be done opaque"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2308
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2309
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2310
	super displayString:aString x:x y:y angle:drawAngle opaque:opaque.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2311
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2312
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2313
    gc displayString:aString x:x y:y angle:drawAngle opaque:opaque
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2314
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2315
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2316
displayUnscaledForm:formToDraw x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2317
    "draw a form or image non opaque and unscaled;
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2318
     if its a 1-plane bitmap, 1-bits are drawn in the
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2319
     current paint-color, leaving pixels with 0-bits unchanged
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2320
     (i.e. only 1-bits are drawn from the form).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2321
     If its a deep form (i.e. a pixmap) the current paint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2322
     settings are ignored and the form is drawn as-is.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2323
     Care must be taken, that the paint color is correctly allocated
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2324
     (by sending #on: to the color) before doing so.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2325
     Using functions other than #copy only makes sense if you are
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2326
     certain, that the colors are real colors (actually, only for
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2327
     noColor or allColor).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2328
     The origins coordinate is transformed, but the image itself is unscaled."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2329
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2330
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2331
	super displayUnscaledForm:formToDraw x:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2332
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2333
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2334
    gc displayUnscaledForm:formToDraw x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2335
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2336
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2337
displayUnscaledOpaqueForm:formToDraw x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2338
    "draw a form or image opaque and unscaled;
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2339
     if its a 1-plane bitmap, 1-bits are drawn in the
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2340
     current paint-color, 0 bits in background color.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2341
     If its a deep form (i.e. a pixmap) the current paint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2342
     settings are ignored and the form is drawn as-is (opaque).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2343
     The origins coordinate is transformed, but the image itself is unscaled."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2344
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2345
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2346
	super displayUnscaledOpaqueForm:formToDraw x:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2347
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2348
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2349
    gc displayUnscaledOpaqueForm:formToDraw x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2350
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2351
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2352
displayUnscaledOpaqueString:aString from:index1 to:index2 x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2353
    "draw a substring at the transformed coordinate x/y but do not scale the font.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2354
     Draw foreground pixels in paint-color, background pixels in bgPaint color."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2355
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2356
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2357
	super displayUnscaledOpaqueString:aString from:index1 to:index2 x:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2358
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2359
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2360
    gc displayUnscaledOpaqueString:aString from:index1 to:index2 x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2361
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2362
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2363
displayUnscaledOpaqueString:aString x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2364
    "draw a string at the transformed coordinate x/y but do not scale the font.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2365
     Draw foreground pixels in paint-color, background pixels in bgPaint color."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2366
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2367
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2368
	super displayUnscaledOpaqueString:aString x:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2369
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2370
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2371
    gc displayUnscaledOpaqueString:aString x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2372
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2373
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2374
displayUnscaledString:aString from:index1 to:index2 x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2375
    "draw a substring at the transformed coordinate x/y but do not scale the font.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2376
     draw foreground-pixels only (in current paint-color), leaving background as-is."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2377
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2378
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2379
	super displayUnscaledString:aString from:index1 to:index2 x:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2380
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2381
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2382
    gc displayUnscaledString:aString from:index1 to:index2 x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2383
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2384
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2385
displayUnscaledString:aString x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2386
    "draw a string at the transformed coordinate x/y but do not scale the font.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2387
     draw foreground-pixels only (in current paint-color), leaving background as-is."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2388
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2389
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2390
	super displayUnscaledString:aString x:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2391
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2392
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2393
    gc displayUnscaledString:aString x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2394
! !
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2395
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2396
!GraphicsMedium methodsFor:'drawing in device coordinates'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2397
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2398
displayDeviceForm:aForm x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2399
    "draw a form or image non opaque (i.e. only foreground color is drawn);
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2400
     If its a 1-plane bitmap, 1-bits are drawn in the
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2401
     current paint-color, leaving pixels with 0-bits unchanged
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2402
     (i.e. only 1-bits are drawn from the form).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2403
     If its a deep form (i.e. a pixmap) the current paint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2404
     settings are ignored and the form is drawn as-is;
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2405
     however, the mask is applied if present.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2406
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2407
     The form should must have been allocated on the same device,
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2408
     otherwise its converted here, which slows down the draw.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2409
     No transformation or scaling is done.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2410
     Care must be taken, that the paint color is correctly allocated
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2411
     (by sending #on: to the color) before doing so.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2412
     Using functions other than #copy only makes sense if you are
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2413
     certain, that the colors are real colors (actually, only for
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2414
     noColor or allColor)."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2415
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2416
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2417
	super displayDeviceForm:aForm x:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2418
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2419
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2420
    gc displayDeviceForm:aForm x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2421
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2422
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2423
displayDeviceLineFromX:x1 y:y1 toX:x2 y:y2
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2424
    "draw a line in device coordinates"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2425
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2426
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2427
	super displayDeviceLineFromX:x1 y:y1 toX:x2 y:y2.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2428
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2429
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2430
    gc displayDeviceLineFromX:x1 y:y1 toX:x2 y:y2
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2431
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2432
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2433
displayDeviceOpaqueForm:aForm x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2434
    "draw a form or image opaque (i.e. both fg and bg is drawn);
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2435
     If its a 1-plane bitmap, 1-bits are drawn in the
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2436
     current paint-color and 0-bits in the bgPaint color.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2437
     If its a deep form (i.e. a pixmap) the current paint/bgPaint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2438
     settings are ignored and the form drawn as-is.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2439
     Any mask is ignored.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2440
     In the 1-plane case, special care must be taken if paint and/or bgPaint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2441
     dithered colors or patterns, since are that the colors are correctly allocated (by sending #on:
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2442
     to the colors) before doing so.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2443
     The form should have been allocated on the same device; otherwise,
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2444
     its converted here, which slows down the draw.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2445
     Drawing is in device coordinates; no scaling is done."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2446
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2447
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2448
	super displayDeviceOpaqueForm:aForm x:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2449
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2450
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2451
    gc displayDeviceOpaqueForm:aForm x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2452
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2453
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2454
displayDeviceOpaqueString:aString from:index1 to:index2 in:font x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2455
    "draw a substring at the coordinate x/y - draw foreground pixels in
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2456
     paint-color and background pixels in bgPaint-color.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2457
     Assuming that device can only draw in device colors, we have to handle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2458
     the case where paint and/or bgPaint are dithered colors.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2459
     No translation or scaling is done."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2460
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2461
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2462
	super displayDeviceOpaqueString:aString from:index1 to:index2 in:font x:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2463
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2464
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2465
    gc displayDeviceOpaqueString:aString from:index1 to:index2 in:font x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2466
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2467
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2468
displayDeviceOpaqueString:aString from:index1 to:index2 x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2469
    "draw a substring at the coordinate x/y - draw foreground pixels in
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2470
     paint-color and background pixels in bgPaint-color.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2471
     Assuming that device can only draw in device colors, we have to handle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2472
     the case where paint and/or bgPaint are dithered colors.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2473
     No translation or scaling is done."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2474
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2475
    self displayDeviceOpaqueString:aString from:index1 to:index2 in:self font x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2476
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2477
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2478
displayDeviceOpaqueString:aString x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2479
    "draw a string at the coordinate x/y - draw foreground pixels in
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2480
     paint-color and background pixels in bgPaint-color.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2481
     No translation or scaling is done"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2482
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2483
    self displayDeviceOpaqueString:aString from:1 to:(aString size) in:self font x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2484
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2485
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2486
displayDeviceRectangleX:x y:y width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2487
    "draw a rectangle in device coordinates"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2488
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2489
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2490
	super displayDeviceRectangleX:x y:y width:w height:h.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2491
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2492
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2493
    gc displayDeviceRectangleX:x y:y width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2494
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2495
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2496
displayDeviceString:aString from:index1 to:index2 in:font x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2497
    "draw a substring at the coordinate x/y -
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2498
     draw foreground-pixels only (in current paint-color), leaving background as-is.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2499
     No translation or scaling is done"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2500
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2501
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2502
        super displayDeviceString:aString from:index1 to:index2 in:font x:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2503
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2504
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2505
    gc displayDeviceString:aString from:index1 to:index2 in:font x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2506
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2507
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2508
displayDeviceString:aString from:index1 to:index2 x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2509
    "draw a substring at the coordinate x/y -
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2510
     draw foreground-pixels only (in current paint-color), leaving background as-is.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2511
     No translation or scaling is done"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2512
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2513
    self displayDeviceString:aString from:index1 to:index2 in:self font x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2514
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2515
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2516
displayDeviceString:aString x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2517
    "draw a string at the coordinate x/y -
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2518
     draw foreground-pixels only (in current paint-color), leaving background as-is.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2519
     No translation or scaling is done"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2520
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2521
    self displayDeviceString:aString from:1 to:(aString size) in:self font x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2522
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2523
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2524
fillDeviceRectangleX:x y:y width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2525
    "fill a rectangle with current paint color (device coordinates)"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2526
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2527
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2528
	super fillDeviceRectangleX:x y:y width:w height:h.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2529
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2530
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2531
    gc fillDeviceRectangleX:x y:y width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2532
! !
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2533
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2534
!GraphicsMedium methodsFor:'edge drawing'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2535
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2536
drawEdgesForX:x y:y width:w height:h level:l
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2537
    "draw 3D edges into a rectangle"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2538
    self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2539
        drawEdgesForX:x y:y width:w height:h level:l
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2540
        shadow:self blackColor light:self whiteColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2541
        halfShadow:nil halfLight:nil
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2542
        style:nil
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2543
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2544
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2545
drawEdgesForX:x y:y width:w height:h level:l
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2546
                shadow:shadowColor light:lightColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2547
                halfShadow:halfShadowColor halfLight:halfLightColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2548
                style:edgeStyle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2549
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2550
    "draw 3D edges into a rectangle"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2551
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2552
    |topLeftFg botRightFg topLeftHalfFg botRightHalfFg
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2553
     count "{ Class: SmallInteger }"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2554
     r
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2555
     b
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2556
     xi    "{ Class: SmallInteger }"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2557
     yi    "{ Class: SmallInteger }"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2558
     run paint|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2559
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2560
    count := l.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2561
    (count < 0) ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2562
        topLeftFg := shadowColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2563
        botRightFg := lightColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2564
        topLeftHalfFg := halfShadowColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2565
        botRightHalfFg := halfLightColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2566
        count := count negated
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2567
    ] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2568
        topLeftFg := lightColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2569
        botRightFg := shadowColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2570
        topLeftHalfFg := halfLightColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2571
        botRightHalfFg := halfShadowColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2572
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2573
    topLeftHalfFg isNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2574
        topLeftHalfFg := topLeftFg
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2575
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2576
    botRightHalfFg isNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2577
        botRightHalfFg := botRightFg
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2578
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2579
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2580
    r := x + w - 1. "right"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2581
    b := y + h - 1. "bottom"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2582
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2583
    self lineWidth:0.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2584
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2585
    "top and left edges"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2586
    ((edgeStyle == #soft or:[edgeStyle == #softWin95]) and:["l" count > 0]) ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2587
        paint := topLeftHalfFg
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2588
    ] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2589
        paint := topLeftFg
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2590
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2591
    self paint:paint.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2592
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2593
    0 to:(count - 1) do:[:i |
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2594
        run := y + i.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2595
        run < b ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2596
            self displayDeviceLineFromX:x y:run toX:r y:run. "top"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2597
        ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2598
        run := x + i.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2599
        self displayDeviceLineFromX:run y:y toX:run y:b  "left"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2600
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2601
    (edgeStyle == #soft or:[edgeStyle == #softWin95]) ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2602
"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2603
        self paint:topLeftFg.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2604
        self displayDeviceLineFromX:x y:y toX:r y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2605
        self displayDeviceLineFromX:x y:y toX:x y:b
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2606
"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2607
        (l > 1) ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2608
            edgeStyle == #softWin95 ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2609
                self paint:(Color veryLightGrey).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2610
            ] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2611
                (l > 2 and:[edgeStyle == #soft]) ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2612
                    self paint:(self device blackColor).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2613
                ] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2614
                    self paint:halfLightColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2615
                ]
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2616
            ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2617
            self displayDeviceLineFromX:x y:y toX:r y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2618
            self displayDeviceLineFromX:x y:y toX:x y:b.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2619
        ]
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2620
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2621
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2622
    xi := x + 1.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2623
    yi := y + 1.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2624
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2625
"/ does not look good
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2626
"/ style == #st80 iftrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2627
"/  yi := yi + 1
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2628
"/ ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2629
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2630
    "bottom and right edges"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2631
    ((edgeStyle == #soft or:[edgeStyle == #softWin95])
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2632
    "new:" and:[count > 1]) ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2633
        paint := botRightHalfFg
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2634
    ] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2635
        paint := botRightFg
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2636
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2637
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2638
    self paint:paint.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2639
    0 to:(count - 1) do:[:i |
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2640
        run := b - i.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2641
        run > y ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2642
            self displayDeviceLineFromX:xi-1 y:run toX:r y:run. "bottom"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2643
        ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2644
        run := r - i.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2645
        self displayDeviceLineFromX:run y:yi-1 toX:run y:b.  "right"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2646
        xi := xi + 1.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2647
        yi := yi + 1
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2648
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2649
    ((edgeStyle == #soft or:[edgeStyle == #softWin95])
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2650
    and:[l > 1]) ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2651
        self paint:(self device blackColor) "shadowColor".
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2652
        self displayDeviceLineFromX:x y:b toX:r y:b.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2653
        self displayDeviceLineFromX:r y:y toX:r y:b
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2654
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2655
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2656
    self edgeDrawn:#all
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2657
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2658
    "Modified: / 24.8.1998 / 18:23:02 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2659
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2660
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2661
edgeDrawn:whichOne
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2662
    "a redefinable hook for views which like to draw
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2663
     over their edges (some checkToggles do).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2664
     Nothing done here."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2665
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2666
    "Created: 7.3.1997 / 17:59:07 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2667
! !
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2668
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2669
!GraphicsMedium methodsFor:'evaluating in another context'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2670
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2671
reverseDo:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2672
    "evaluate aBlock with foreground and background interchanged.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2673
     This can be reimplemented here in a faster way."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2674
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2675
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2676
	super reverseDo:aBlock.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2677
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2678
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2679
    gc reverseDo:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2680
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2681
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2682
withBackground:fgColor do:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2683
    "evaluate aBlock with changed background."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2684
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2685
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2686
	super withBackground:fgColor do:aBlock.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2687
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2688
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2689
    gc withBackground:fgColor do:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2690
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2691
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2692
withForeground:fgColor background:bgColor do:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2693
    "evaluate aBlock with changed foreground and background."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2694
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2695
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2696
	super withForeground:fgColor background:bgColor do:aBlock.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2697
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2698
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2699
    gc withForeground:fgColor background:bgColor do:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2700
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2701
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2702
withForeground:fgColor background:bgColor function:aFunction do:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2703
    "evaluate aBlock with foreground, background and function"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2704
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2705
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2706
	super withForeground:fgColor background:bgColor function:aFunction do:aBlock.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2707
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2708
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2709
    gc withForeground:fgColor background:bgColor function:aFunction do:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2710
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2711
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2712
withForeground:fgColor background:bgColor mask:aMask do:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2713
    "evaluate aBlock with foreground, background and mask"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2714
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2715
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2716
	super withForeground:fgColor background:bgColor mask:aMask do:aBlock.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2717
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2718
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2719
    gc withForeground:fgColor background:bgColor mask:aMask do:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2720
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2721
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2722
withForeground:fgColor do:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2723
    "evaluate aBlock with changed foreground."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2724
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2725
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2726
	super withForeground:fgColor do:aBlock.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2727
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2728
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2729
    gc withForeground:fgColor do:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2730
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2731
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2732
withForeground:fgColor function:aFunction do:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2733
    "evaluate aBlock with changed foreground and function."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2734
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2735
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2736
	super withForeground:fgColor function:aFunction do:aBlock.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2737
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2738
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2739
    gc withForeground:fgColor function:aFunction do:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2740
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2741
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2742
xoring:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2743
    "evaluate aBlock with function xoring"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2744
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2745
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2746
	super xoring:aBlock.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2747
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2748
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2749
    gc xoring:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2750
! !
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2751
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2752
!GraphicsMedium methodsFor:'filling'!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2753
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2754
black
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2755
    "fill the receiver with black"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2756
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2757
    self fill:self blackColor
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2758
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2759
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2760
clear
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2761
    "clear the receiver with background"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2762
4068
d5b2636b048b clear -> clearView
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
  2763
    self clearView.
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2764
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2765
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2766
clearDeviceRectangleX:x y:y width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2767
    "clear a rectangular area to viewBackground -
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2768
     redefined since GraphicsMedium fills with background
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2769
     - not viewBackground as we want here."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2770
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2771
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2772
	super clearDeviceRectangleX:x y:y width:w height:h.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2773
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2774
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2775
    gc clearDeviceRectangleX:x y:y width:w height:h.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2776
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2777
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2778
clearInside
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2779
    "clear the receiver with background - ST-80 compatibility"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2780
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2781
    ^ self clear
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2782
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2783
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2784
clearRectangle:aRectangle
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2785
    "clear the rectangular area in the receiver to background"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2786
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2787
    self clearRectangleX:(aRectangle left)
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2788
		       y:(aRectangle top)
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2789
		   width:(aRectangle width)
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2790
		  height:(aRectangle height)
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2791
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2792
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2793
clearRectangleX:left y:top width:w height:h
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2794
    "clear the rectangular area in the receiver to background"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2795
741
f57edf410176 removed unused methods
Claus Gittinger <cg@exept.de>
parents: 740
diff changeset
  2796
    |oldPaint|
f57edf410176 removed unused methods
Claus Gittinger <cg@exept.de>
parents: 740
diff changeset
  2797
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2798
    oldPaint := gc paint.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2799
    gc paint:gc backgroundPaint.
6045
0e3df803d990 class: GraphicsMedium
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
  2800
    gc fillRectangleX:left y:top width:w height:h.
0e3df803d990 class: GraphicsMedium
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
  2801
    gc paint:oldPaint
741
f57edf410176 removed unused methods
Claus Gittinger <cg@exept.de>
parents: 740
diff changeset
  2802
f57edf410176 removed unused methods
Claus Gittinger <cg@exept.de>
parents: 740
diff changeset
  2803
    "Modified: 28.5.1996 / 20:14:11 / cg"
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2804
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2805
4068
d5b2636b048b clear -> clearView
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
  2806
clearView
d5b2636b048b clear -> clearView
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
  2807
    "clear the receiver with background"
d5b2636b048b clear -> clearView
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
  2808
d5b2636b048b clear -> clearView
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
  2809
    "currently need this kludge for form ..."
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2810
    gc transformation isNil ifTrue:[
5321
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
  2811
	self clearRectangleX:0 y:0 width:width height:height
4068
d5b2636b048b clear -> clearView
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
  2812
    ] ifFalse:[
5321
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
  2813
	self clearDeviceRectangleX:0 y:0 width:width height:height
4068
d5b2636b048b clear -> clearView
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
  2814
    ]
d5b2636b048b clear -> clearView
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
  2815
!
d5b2636b048b clear -> clearView
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
  2816
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2817
fill:something
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2818
    "fill the receiver with something;
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2819
     something may be a Form, Color or colorIndex"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2820
736
57e698160087 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 734
diff changeset
  2821
    |oldPaint|
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2822
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2823
    oldPaint := self paint.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2824
    self paint:something.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2825
    self fillRectangleX:0 y:0 width:width height:height.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2826
    self paint:oldPaint
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2827
741
f57edf410176 removed unused methods
Claus Gittinger <cg@exept.de>
parents: 740
diff changeset
  2828
    "Modified: 28.5.1996 / 20:13:29 / cg"
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2829
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2830
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2831
fillArc:origin radius:r from:startAngle angle:angle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2832
    "draw a filled arc around a point"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2833
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2834
    |d|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2835
    d := 2 * r.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2836
    self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2837
	fillArcX:(origin x - r)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2838
	       y:(origin y - r)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2839
	   width:d
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2840
	  height:d
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2841
	    from:startAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2842
	   angle:angle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2843
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2844
    "Modified: 8.5.1996 / 08:41:54 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2845
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2846
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2847
fillArcIn:aRectangle from:startAngle angle:angle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2848
    "draw a filled arc in a box"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2849
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2850
    self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2851
	fillArcX:(aRectangle left)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2852
	       y:(aRectangle top)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2853
	   width:(aRectangle width)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2854
	  height:(aRectangle height)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2855
	    from:startAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2856
	   angle:angle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2857
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2858
    "Created: 13.4.1996 / 20:56:03 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2859
    "Modified: 8.5.1996 / 08:42:13 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2860
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2861
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2862
fillArcOrigin:origin corner:corner from:startAngle angle:angle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2863
    "draw a filled arc in a box"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2864
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2865
    |left top right bot|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2866
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2867
    left := origin x.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2868
    top := origin y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2869
    right := corner x.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2870
    bot := corner y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2871
    self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2872
	fillArcX:left
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2873
	y:top
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2874
	width:(right - left + 1)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2875
	height:(bot - top + 1)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2876
	from:startAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2877
	angle:angle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2878
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2879
    "Created: 13.4.1996 / 20:56:56 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2880
    "Modified: 8.5.1996 / 08:42:23 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2881
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2882
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2883
fillArcX:x y:y w:w h:h from:startAngle angle:angle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2884
    "draw a filled arc; apply transformation if nonNil"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2885
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2886
    <resource:#obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2887
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2888
    self obsoleteMethodWarning:'use #fillArcX:y:width:height:from:angle:'.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2889
    self fillArcX:x y:y width:w height:h from:startAngle angle:angle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2890
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2891
    "Modified: 8.5.1996 / 08:47:52 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2892
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2893
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2894
fillArcX:x y:y width:w height:h from:startAngle to:endAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2895
    "draw a filled arc in a box, given startAngle and endAngle."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2896
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2897
    self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2898
	fillArcX:x
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2899
	       y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2900
	   width:w
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2901
	  height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2902
	    from:startAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2903
	   angle:(endAngle - startAngle)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2904
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2905
    "Created: 8.5.1996 / 08:52:41 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2906
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2907
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2908
fillCircle:aPoint radius:aNumber
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2909
    "draw a filled circle around aPoint"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2910
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2911
    self fillCircleX:(aPoint x) y:(aPoint y) radius:aNumber
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2912
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2913
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2914
fillCircleIn:aRectangle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2915
    "draw a filled circle in a box"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2916
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2917
    self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2918
	fillArcX:(aRectangle left)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2919
	       y:(aRectangle top)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2920
	   width:(aRectangle width)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2921
	  height:(aRectangle height)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2922
	    from:0
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2923
	   angle:360
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2924
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2925
    "Created: 13.4.1996 / 20:57:41 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2926
    "Modified: 8.5.1996 / 08:42:38 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2927
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2928
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2929
fillCircleX:x y:y radius:r
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2930
    "draw a filled circle around x@y"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2931
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2932
    |d|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2933
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2934
    d := 2 * r.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2935
    self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2936
	fillArcX:(x - r)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2937
	y:(y - r)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2938
	width:d
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2939
	height:d
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2940
	from:0
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2941
	angle:360
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2942
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2943
    "Modified: 8.5.1996 / 08:43:02 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2944
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2945
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2946
fillRectangle:aRectangle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2947
    "fill a rectangle with current paint color"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2948
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2949
    self fillRectangleX:(aRectangle left)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2950
		      y:(aRectangle top)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2951
		  width:(aRectangle width)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2952
		 height:(aRectangle height)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2953
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2954
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2955
fillRectangleLeft:left top:top right:cornerX bottom:cornerY
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2956
    "draw a filled rectangle.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2957
     Notice: the cornerPoint itself is NOT included"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2958
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2959
    self fillRectangleX:left y:top width:(cornerX - left) height:(cornerY - top)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2960
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2961
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2962
fillRectangleOrigin:origin corner:corner
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2963
    "draw a filled rectangle.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2964
     Notice: the cornerPoint itself is NOT included"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2965
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2966
    |top left|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2967
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2968
    left := origin x.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2969
    top := origin y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2970
    self fillRectangleX:left y:top width:(corner x - left) height:(corner y - top)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2971
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2972
    "Created: 13.4.1996 / 20:58:16 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2973
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2974
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2975
fillRectangleOrigin:origin extent:extent
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2976
    "draw a filled rectangle.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2977
     Notice: the cornerPoint itself is NOT included"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2978
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2979
    self fillRectangleX:(origin x) y:(origin y) width:(extent x) height:(extent y)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2980
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2981
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2982
fillRoundRectangleX:left y:top width:width height:height wCorner:wCorn hCorner:hCorn
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2983
    |right bottom wC hC wHalf hHalf|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2984
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2985
    right := left + width.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2986
    bottom := top + height.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2987
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2988
    wC := wCorn.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2989
    hC := hCorn.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2990
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2991
    wHalf := wC / 2.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2992
    hHalf := hC / 2.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2993
6581
757f060cd8f3 class: GraphicsMedium
Stefan Vogel <sv@exept.de>
parents: 6580
diff changeset
  2994
    self device isWindowsPlatform ifTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2995
        "/ bug workaround
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2996
        "top left arc"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2997
        self fillArcX:left y:top width:wC height:hC from:90 angle:90.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2998
        "top right arc"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2999
        self fillArcX:(right - wC - 1) y:top width:wC height:hC from:0 angle:90.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3000
        "bottom right arc"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3001
        self fillArcX:(right - wC - 1) y:(bottom - hC - 1) width:wC height:hC from:270 angle:90.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3002
        "bottom left arc"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3003
        self fillArcX:left y:(bottom - hC) width:wC height:hC-1 from:180 angle:90.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3004
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3005
        "center rectangle"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3006
        self fillRectangleX:(left + wHalf) y:top width:(width - wHalf - wHalf+1) height:height-1.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3007
        "left partial rectangle"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3008
        self fillRectangleX:left y:top+hHalf width:wHalf height:(height-hHalf-hHalf).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3009
        "right partial rectangle"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3010
        self fillRectangleX:right-wHalf y:top+hHalf width:wHalf-1 height:(height-hHalf-hHalf).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3011
    ] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3012
        "top left arc"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3013
        self fillArcX:left y:top width:wC height:hC from:90 angle:90.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3014
        "top right arc"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3015
        self fillArcX:(right - wC) y:top width:wC height:hC from:0 angle:90.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3016
        "bottom right arc"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3017
        self fillArcX:(right - wC - 1) y:(bottom - hC) width:wC height:hC from:270 angle:90.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3018
        "bottom left arc"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3019
        self fillArcX:left y:(bottom - hC) width:wC height:hC from:180 angle:90.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3020
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3021
        "center rectangle"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3022
        self fillRectangleX:(left + wHalf) y:top width:(width - wHalf - wHalf+1) height:height.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3023
        "left partial rectangle"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3024
        self fillRectangleX:left y:top+hHalf width:wHalf height:(height-hHalf-hHalf).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3025
        "right partial rectangle"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3026
        self fillRectangleX:right-wHalf y:top+hHalf width:wHalf height:(height-hHalf-hHalf).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3027
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3028
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3029
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3030
    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3031
     |v|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3032
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3033
     (v := View new) extent:200@200; openAndWait.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3034
     v fillRoundRectangleX:10 y:10 width:100 height:100 wCorner:20 hCorner:20
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3035
    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3036
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3037
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3038
invertRectangle:aRectangle
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3039
    "invert a rectangle in the receiver"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3040
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3041
    self xoring:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3042
	self fillRectangle:aRectangle
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3043
    ]
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3044
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3045
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3046
white
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3047
    "fill the receiver with white"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3048
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3049
    self fill:Color white
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3050
! !
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3051
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3052
!GraphicsMedium methodsFor:'initialization & release'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3053
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3054
close
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3055
    "same as destroy - for ST-80 compatibility"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3056
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3057
    self destroy
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3058
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3059
    "Created: 2.4.1997 / 19:31:27 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3060
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3061
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3062
destroy
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3063
    "destroy a medium - here the fc is completely destroyed"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3064
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3065
    gc notNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3066
        gc destroy.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3067
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3068
    realized := false.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3069
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3070
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3071
initGC
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3072
    "since we do not need a gc-object for the drawable until something is
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3073
     really drawn, none is created.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3074
     This method is sent, when the first drawing happens"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3075
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3076
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3077
	super initGC.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3078
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3079
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3080
    gc initGC
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3081
!
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3082
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3083
initialize
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3084
    super initialize.
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3085
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3086
    width := 0.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  3087
    height := 0.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  3088
    realized := false.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3089
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3090
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3091
initializeForDevice:aDevice
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3092
    "allocate a GraphicsContext for a device"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3093
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3094
    aDevice notNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3095
        gc := aDevice newGraphicsContextFor:self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3096
    ] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3097
        "should not be reached"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3098
        GraphicsMedium superclass == DeviceGraphicsContext ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3099
            gc := self. 
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3100
            super device:aDevice.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3101
        ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3102
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3103
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3104
    self initialize.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3105
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3106
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3107
recreate
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3108
    "reacreate a medium after snapIn"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3109
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3110
    gc notNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3111
        gc recreate.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3112
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3113
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3114
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3115
releaseGC
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3116
    "destroy the associated device GC resource - can be done to be nice to the
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3117
     display if you know that you are done with a drawable."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3118
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3119
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3120
        super releaseGC.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3121
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3122
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3123
    gc notNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3124
        gc releaseGC.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3125
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3126
! !
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3127
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3128
!GraphicsMedium methodsFor:'misc'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3129
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3130
clippedTo:aRectangle do:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3131
    |oldClip|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3132
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3133
    oldClip := gc deviceClippingBoundsOrNil.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3134
    gc clippingBounds:aRectangle.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3135
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3136
    aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3137
        ensure:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3138
            gc deviceClippingBounds:oldClip
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3139
        ]
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3140
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3141
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3142
flush
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3143
    "send all buffered drawing to the device."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3144
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3145
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3146
	super flush.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3147
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3148
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3149
    gc flush
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3150
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3151
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3152
setDevice:aDevice id:aDrawbleId gcId:aGCId
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3153
    "private"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3154
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3155
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3156
        super setDevice:aDevice id:aDrawbleId gcId:aGCId.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3157
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3158
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3159
    gc notNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3160
        gc setDevice:aDevice id:aDrawbleId gcId:aGCId
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3161
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3162
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3163
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3164
setId:aDrawableId
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3165
    "private"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3166
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3167
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3168
        super setId:aDrawableId.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3169
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3170
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3171
    gc setId:aDrawableId
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3172
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3173
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3174
setPaint:fgColor on:bgColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3175
    "set the paint and background-paint color. 
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3176
     The bg-paint is used in opaque-draw operations.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3177
     Only set the variables, but do not send it to the device,
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3178
     Used on initialization."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3179
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3180
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3181
        super setPaint:fgColor on:bgColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3182
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3183
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3184
    gc setPaint:fgColor on:bgColor
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  3185
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  3186
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3187
sync
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3188
    "send all buffered drawing to the device and wait until the device responds"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3189
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3190
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3191
        super sync.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3192
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3193
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3194
    gc sync
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3195
! !
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3196
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3197
!GraphicsMedium methodsFor:'printing & storing'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3198
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3199
storeOn:aStream
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3200
    "blocked: ascii storeString not possible (recursive - view - subviews - container)"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3201
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3202
    self shouldNotImplement.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3203
    "if proceeded from exception..."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3204
    self printOn:aStream.
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3205
! !
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3206
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3207
!GraphicsMedium methodsFor:'queries'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3208
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3209
fontAscent
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3210
    "answer the ascent of the current font on the current device"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3211
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3212
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3213
	^ super fontAscent.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3214
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3215
    ^ gc fontAscent
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3216
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3217
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3218
horizontalIntegerPixelPerMillimeter
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3219
    "return the (rounded) number of pixels per millimeter"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3220
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3221
    ^ self horizontalPixelPerMillimeter asInteger
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3222
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3223
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3224
horizontalPixelPerInch
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3225
    "return the number of horizontal pixels per inch of the display"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3226
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3227
    ^ self horizontalPixelPerMillimeter * 25.4
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3228
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3229
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3230
horizontalPixelPerMillimeter
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3231
    "return the number of pixels per millimeter (not rounded)"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3232
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3233
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3234
	^ super horizontalPixelPerMillimeter.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3235
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3236
    ^ gc horizontalPixelPerMillimeter
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3237
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3238
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3239
horizontalPixelPerMillimeter:millis
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3240
    "return the number of pixels (not rounded) for millis millimeter"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3241
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3242
    ^ self horizontalPixelPerMillimeter * millis
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3243
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3244
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3245
resolution
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3246
    "return a point consisting of pixel-per-inch horizontally and vertically."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3247
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3248
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3249
	^ super resolution.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3250
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3251
    ^ gc resolution
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3252
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3253
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3254
verticalIntegerPixelPerMillimeter
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3255
    "return the (rounded) number of pixels per millimeter"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3256
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3257
    ^ self verticalPixelPerMillimeter rounded
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3258
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3259
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3260
verticalPixelPerInch
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3261
    "return the number of vertical pixels per inch of the display"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3262
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3263
    ^ self verticalPixelPerMillimeter * 25.4
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3264
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3265
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3266
verticalPixelPerMillimeter
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3267
    "return the number of pixels per millimeter (not rounded)"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3268
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3269
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3270
	^ super verticalPixelPerMillimeter.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3271
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3272
    ^ gc verticalPixelPerMillimeter
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3273
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3274
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3275
verticalPixelPerMillimeter:millis
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3276
    "return the number of pixels (not rounded) for millis millimeter"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3277
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3278
    ^ self verticalPixelPerMillimeter * millis
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3279
! !
6045
0e3df803d990 class: GraphicsMedium
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
  3280
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3281
!GraphicsMedium methodsFor:'view creation'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3282
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3283
createBitmapFromArray:data width:width height:height
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3284
    "create a bitmap from data and set the drawableId"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3285
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3286
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3287
        super createBitmapFromArray:data width:width height:height.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3288
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3289
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3290
    gc createBitmapFromArray:data width:width height:height
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3291
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3292
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3293
createPixmapWidth:w height:h depth:d
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3294
    "create a pixmap and set the drawableId"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3295
    
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3296
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3297
        super createPixmapWidth:w height:h depth:d.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3298
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3299
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3300
    gc createPixmapWidth:w height:h depth:d
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3301
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3302
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3303
createRootWindow
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3304
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3305
        super createRootWindowFor:self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3306
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3307
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3308
    gc createRootWindowFor:self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3309
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3310
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3311
createWindowFor:aView type:typeSymbol origin:org extent:ext minExtent:minE maxExtent:maxE borderWidth:bw subViewOf:sv style:styleSymbol inputOnly:inp label:label owner:owner icon:icn iconMask:icnM iconView:icnV 
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3312
    "create a window and set the drawableId"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3313
    
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3314
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3315
        super createWindowFor:aView type:typeSymbol origin:org extent:ext minExtent:minE maxExtent:maxE borderWidth:bw subViewOf:sv style:styleSymbol inputOnly:inp label:label owner:owner icon:icn iconMask:icnM iconView:icnV.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3316
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3317
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3318
    gc createWindowFor:aView type:typeSymbol origin:org extent:ext minExtent:minE maxExtent:maxE borderWidth:bw subViewOf:sv style:styleSymbol inputOnly:inp label:label owner:owner icon:icn iconMask:icnM iconView:icnV 
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3319
! !
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3320
6580
c2754553e0a4 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 6579
diff changeset
  3321
!GraphicsMedium class methodsFor:'documentation'!
6579
db31ebd19872 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 6472
diff changeset
  3322
db31ebd19872 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 6472
diff changeset
  3323
version_CVS
6581
757f060cd8f3 class: GraphicsMedium
Stefan Vogel <sv@exept.de>
parents: 6580
diff changeset
  3324
    ^ '$Header: /cvs/stx/stx/libview/GraphicsMedium.st,v 1.22.2.4 2014-09-26 09:48:32 stefan Exp $'
6579
db31ebd19872 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 6472
diff changeset
  3325
! !
db31ebd19872 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 6472
diff changeset
  3326