GraphicsMedium.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 30 Jun 2016 22:07:40 +0100
branchjv
changeset 7399 143bc9c1a08e
parent 7318 83b501bbf3b0
child 7541 39940e2446a5
permissions -rw-r--r--
Merge
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
7285
d047c5fb149a Compatibility: reintroduce `device` instvar in `GraphicsMedium`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800
diff changeset
    14
"{ NameSpace: Smalltalk }"
d047c5fb149a Compatibility: reintroduce `device` instvar in `GraphicsMedium`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800
diff changeset
    15
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    16
Object subclass:#GraphicsMedium
7285
d047c5fb149a Compatibility: reintroduce `device` instvar in `GraphicsMedium`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800
diff changeset
    17
	instanceVariableNames:'gc device width height realized'
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	classVariableNames:''
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	poolDictionaries:''
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	category:'Graphics-Support'
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
!
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
!GraphicsMedium class methodsFor:'documentation'!
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
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
 COPYRIGHT (c) 1989 by Claus Gittinger
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
	      All Rights Reserved
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
 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
    31
 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
    32
 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
    33
 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
    34
 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
    35
 hereby transferred.
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
!
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
documentation
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
    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
    42
    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
    43
    from here - it will vanish soon.
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
    [Instance variables:]
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
5321
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
    47
	width           <SmallInteger>  the width (device dependent, usually pixels or inches)
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
    48
	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
    49
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
    [author:]
5321
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
    51
	Claus Gittinger
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
! !
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    55
!GraphicsMedium class methodsFor:'instance creation'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    56
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    57
new
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    58
    "create a new drawable - take the current display as
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    59
     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
    60
     physically created)"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    61
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
    '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
    64
"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    65
    ^ self onDevice:Screen current.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    66
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    67
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    68
on:aDevice
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    69
    "create a new drawable on aDevice"
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
    <resource:#obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    72
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    73
    "/ 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
    74
    "/ operating on a model.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    75
    "/ Please use #onDevice: to avoid confusion.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    76
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    77
    self obsoleteMethodWarning:'use #onDevice:'.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    78
    ^ self onDevice:aDevice
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
    "Modified: 5.6.1997 / 21:04:16 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    81
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    82
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    83
onDevice:aDevice
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    84
    "create a new drawable on 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
    ^ self basicNew initializeForDevice:aDevice.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    87
! !
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
!GraphicsMedium class methodsFor:'Signal constants'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    90
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    91
drawingOnClosedDrawableSignal
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    92
    "return the signal which is raised, if drawing is attempted
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    93
     on a closed drawable.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    94
     This is especially useful, if a forked thread animates
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    95
     a view in the background, and is not properly synchronized
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    96
     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
    97
     and the background process continues to draw.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    98
     In this case, the background thread should handle this signal
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
    99
     and terminate itself in the handler."
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
    ^ GraphicsContext drawingOnClosedDrawableSignal
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
    "demonstration1: (error if closed by the windowManager):
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|
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
     v := StandardSystemView new openAndWait.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   108
     [
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   109
	[true] whileTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   110
	    |x y|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   111
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   112
	    x := Random nextIntegerBetween:0 and:(v width).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   113
	    y := Random nextIntegerBetween:0 and:(v height).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   114
	    v displayString:'hello' x:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   115
	    Delay waitForSeconds:0.5.
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
     ] fork.
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
    "demonstration2: (no error if closed by the windowManager):
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|
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 := StandardSystemView new openAndWait.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   124
     [
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   125
	v class drawingOnClosedDrawableSignal handle:[:ex |
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   126
	    ex return
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   127
	] do:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   128
	    [true] whileTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   129
		|x y|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   130
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   131
		x := Random nextIntegerBetween:0 and:(v width).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   132
		y := Random nextIntegerBetween:0 and:(v height).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   133
		v displayString:'hello' x:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   134
		Delay waitForSeconds:0.5.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   135
	    ]
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
     ] fork.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   138
    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   139
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   140
    "Created: / 29.1.1998 / 13:10:41 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   141
    "Modified: / 29.1.1998 / 13:11:14 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   142
! !
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
!GraphicsMedium class methodsFor:'accessing-defaults'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   145
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   146
defaultFont
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   147
    "get the default font used for drawing"
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
    ^ GraphicsContext defaultFont
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   150
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   151
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   152
defaultFont:aFont
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   153
    "set the default font used for drawing"
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
    GraphicsContext defaultFont:aFont
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   156
! !
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
!GraphicsMedium methodsFor:'Compatibility-ST80'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   159
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   160
displayArc:origin radius:radius from:startAngle angle:angle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   161
    "draw an arc around a point"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   162
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   163
    self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   164
	displayArcX:(origin x - radius)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   165
		  y:(origin y - radius)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   166
	      width:(radius * 2)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   167
	     height:(radius * 2)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   168
	       from:startAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   169
	      angle:angle
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
    "Modified: 8.5.1996 / 08:34:43 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   172
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   173
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   174
displayArcBoundedBy:boundingBox startAngle:startAngle sweepAngle:sweepAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   175
   "draw an arc/circle/ellipse - ST-80 compatibility"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   176
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   177
   ^ self displayArcX:(boundingBox left)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   178
		    y:(boundingBox top)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   179
		width:(boundingBox width)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   180
	       height:(boundingBox height)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   181
		 from:startAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   182
		angle:sweepAngle
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
    "Created: / 14.11.1997 / 21:04:19 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   185
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   186
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   187
displayArcBoundedBy:boundingBox startAngle:startAngle sweepAngle:sweepAngle at:origin
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   188
   "draw an arc/circle/ellipse - ST-80 compatibility"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   189
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   190
   ^ self displayArcX:(boundingBox left + origin x)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   191
		    y:(boundingBox top + origin y)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   192
		width:(boundingBox width)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   193
	       height:(boundingBox height)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   194
		 from:startAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   195
		angle:sweepAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   196
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   197
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   198
displayLineFrom:startPoint to:endPoint translateBy:anOffset
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   199
    "draw a line - ST-80 compatibility"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   200
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   201
    self displayLineFrom:(startPoint + anOffset)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   202
		      to:(endPoint + anOffset)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   203
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   204
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   205
displayPolyline:aPolygon
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   206
    "draw a polygon - ST-80 compatibility"
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
    ^ self displayPolygon:aPolygon
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   209
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   210
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   211
displayRectangularBorder:aRectangle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   212
    "draw a rectangle - ST-80 compatibility"
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
    self displayRectangle:aRectangle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   215
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   216
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   217
displayRectangularBorder:aRectangle at:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   218
    "draw a rectangle - ST-80 compatibility"
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
    self displayRectangle:(aRectangle translateBy:aPoint)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   221
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   222
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   223
displayWedgeBoundedBy:boundingBox startAngle:startAngle sweepAngle:sweepAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   224
   "fill an arc/circle/ellipse - ST-80 compatibility"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   225
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   226
   ^ self fillArcX:(boundingBox left)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   227
		 y:(boundingBox top)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   228
	     width:(boundingBox width)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   229
	    height:(boundingBox height)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   230
	      from:startAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   231
	     angle:sweepAngle
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
    "Created: 27.1.1997 / 15:50:14 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   234
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   235
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   236
displayWedgeBoundedBy:boundingBox startAngle:startAngle sweepAngle:sweepAngle at:origin
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   237
   "fill an arc/circle/ellipse - ST-80 compatibility"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   238
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   239
   ^ self fillArcX:(boundingBox left + origin x)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   240
		 y:(boundingBox top + origin y)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   241
	     width:(boundingBox width)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   242
	    height:(boundingBox height)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   243
	      from:startAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   244
	     angle:sweepAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   245
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   246
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   247
findFont:aFontDescription
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   248
    "given a fontDescription, return a device font for it
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   249
     on my 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
    ^ aFontDescription onDevice:self device
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
    "Modified: 28.5.1996 / 20:22:29 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   254
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   255
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   256
key
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   257
    ^ self id
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   258
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   259
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   260
phase
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   261
    "return the origin within the mask (used to draw with patterns).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   262
     This is an alias for ST/X's #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
    ^ self maskOrigin
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   265
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   266
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   267
phase:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   268
    "set the origin within the mask (used to draw with patterns).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   269
     This is an alias for ST/X's #maskOrigin:"
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
    ^ self maskOrigin:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   272
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   273
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   274
setDevicePattern:aColorOrMask
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   275
    "ST/X can paint in any color or image"
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
    self paint:aColorOrMask
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   278
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   279
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   280
tilePhase
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   281
    "return the origin within the mask (used to draw with patterns).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   282
     This is an alias for ST/X's #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
    ^ self maskOrigin
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
    "Created: 4.6.1996 / 15:26:39 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   287
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   288
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   289
tilePhase:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   290
    "set the origin within the mask (used to draw with patterns).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   291
     This is an alias for ST/X's #maskOrigin"
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
    ^ self maskOrigin:aPoint
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
    "Created: 4.6.1996 / 15:26:49 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   296
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   297
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   298
widthOfString:aString
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   299
    "given a string, return its width in pixels if
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   300
     drawn on the receivers device."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   301
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   302
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   303
        ^ super 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
    ^ gc widthOfString:aString.
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
    "Modified: 28.5.1996 / 20:22:22 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   308
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   309
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   310
widthOfString:aString from:start to:stop
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   311
    "given a string, return the width in pixels if
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   312
     a substring is drawn on the receivers device."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   313
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   314
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   315
        ^ super 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
    ^ gc widthOfString:aString from:start to:stop.
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
    "Modified: 28.5.1996 / 20:22:18 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   320
! !
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   321
3880
c4c8268a2d9f method category rename
Claus Gittinger <cg@exept.de>
parents: 3396
diff changeset
   322
!GraphicsMedium methodsFor:'Compatibility-Squeak'!
2947
53f0ea77b1e4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2030
diff changeset
   323
3339
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   324
copyBits:aRectangle from:aForm at:srcOrigin clippingBox:clippingBox rule:rule fillColor:fillColor
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   325
    |f oldClip oldFunction|
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   326
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   327
    (f := rule) isInteger ifTrue:[
5321
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   328
	"/ ST-80 compatibility: numeric rule
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   329
	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
   330
	       orReverse nand set) at:(rule + 1).
3339
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   331
    ].
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   332
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   333
    oldFunction := gc function.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   334
    oldClip := gc clippingRectangleOrNil.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   335
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   336
    gc clippingRectangle:clippingBox.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   337
    gc function:f.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   338
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   339
    gc
5321
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   340
	copyFrom:aForm
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   341
	x:srcOrigin x y:srcOrigin y
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   342
	toX:aRectangle left y:aRectangle top
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   343
	width:aRectangle width height:aRectangle height.
3339
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   344
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   345
    gc clippingRectangle:oldClip.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   346
    gc function:oldFunction.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   347
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 src|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   350
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   351
      dst := Form width:8 height:8 fromArray:#[
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
					      2r00000000
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   355
					      2r00000000
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
					      2r11111111
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   359
					      2r11111111
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   360
					     ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   361
      src := Form width:8 height:8 fromArray:#[
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
					      2r00001111
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   369
					      2r00001111
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   370
					     ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   371
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   372
    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
   373
    dst inspect
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
    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   376
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   377
    "Modified: / 23.10.2000 / 16:50:44 / martin"
3339
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   378
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   379
    "
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   380
      |dst src|
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   381
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   382
      dst := Form width:8 height:8 fromArray:#[
5321
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
					      2r00000000
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   386
					      2r00000000
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
					      2r11111111
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   390
					      2r11111111
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   391
					     ].
3339
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   392
      src := Form width:8 height:8 fromArray:#[
5321
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
					      2r00001111
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   400
					      2r00001111
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   401
					     ].
3339
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   402
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   403
    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
   404
    dst inspect
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   405
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   406
    "
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   407
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   408
    "Modified: / 23.10.2000 / 16:50:44 / martin"
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   409
!
760315aa0412 st80 bitBlt moved up
martin
parents: 3034
diff changeset
   410
3396
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3339
diff changeset
   411
fill:aRectangle fillColor:aColor
3022
72a01d644ce1 Squeak compatibility
ps
parents: 2955
diff changeset
   412
    "fill the rectangular area specified by aRectangle with the black color"
72a01d644ce1 Squeak compatibility
ps
parents: 2955
diff changeset
   413
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   414
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   415
	super fill:aRectangle fillColor:aColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   416
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   417
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   418
    gc fill:aRectangle fillColor:aColor
3396
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3339
diff changeset
   419
!
3022
72a01d644ce1 Squeak compatibility
ps
parents: 2955
diff changeset
   420
3396
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3339
diff changeset
   421
fillBlack:aRectangle
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3339
diff changeset
   422
    "fill the rectangular area specified by aRectangle with the black color"
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3339
diff changeset
   423
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   424
    self fill:aRectangle fillColor:Color black
3022
72a01d644ce1 Squeak compatibility
ps
parents: 2955
diff changeset
   425
!
72a01d644ce1 Squeak compatibility
ps
parents: 2955
diff changeset
   426
2947
53f0ea77b1e4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2030
diff changeset
   427
fillColor:something
53f0ea77b1e4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2030
diff changeset
   428
    "fill the receiver with something;
53f0ea77b1e4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2030
diff changeset
   429
     something may be a Form, Color or colorIndex"
53f0ea77b1e4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2030
diff changeset
   430
53f0ea77b1e4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2030
diff changeset
   431
    self fill:something
3022
72a01d644ce1 Squeak compatibility
ps
parents: 2955
diff changeset
   432
!
72a01d644ce1 Squeak compatibility
ps
parents: 2955
diff changeset
   433
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   434
fillRectangle:aRectangle color:aColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   435
    "fill a rectangle with the given paint color"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   436
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   437
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   438
	super fillRectangle:aRectangle color:aColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   439
	^ self.
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
    gc fillRectangle:aRectangle color:aColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   442
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   443
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   444
fillWhite
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   445
    "fill all of the receiver with the white color"
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
    self fill:Color white
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   448
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   449
3022
72a01d644ce1 Squeak compatibility
ps
parents: 2955
diff changeset
   450
fillWhite:aRectangle
72a01d644ce1 Squeak compatibility
ps
parents: 2955
diff changeset
   451
    "fill the rectangular area specified by aRectangle with the white color"
72a01d644ce1 Squeak compatibility
ps
parents: 2955
diff changeset
   452
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   453
    self fill:aRectangle fillColor:Color white
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   454
! !
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
!GraphicsMedium methodsFor:'Compatibility-VW'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   457
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   458
displayBackgroundIfNeededOn: aGraphicsContext
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   459
    aGraphicsContext clearView.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   460
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   461
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   462
inactiveForegroundColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   463
    "a dummy method to support VW widgets"
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
    ^ self foregroundColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   466
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   467
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   468
selectionBackgroundColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   469
    "a dummy method to support VW widgets"
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
    ^ self foregroundColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   472
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   473
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   474
selectionForegroundColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   475
    "a dummy method to support VW widgets"
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
    ^ self backgroundColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   478
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   479
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   480
separatorColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   481
    "a dummy method to support VW widgets"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   482
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   483
    ^ self foregroundColor
2947
53f0ea77b1e4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2030
diff changeset
   484
! !
53f0ea77b1e4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2030
diff changeset
   485
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   486
!GraphicsMedium methodsFor:'accessing'!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   487
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   488
at:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   489
    "return the pixel at the coordinate given by aPoint"
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
    ^ self atX:aPoint x y:aPoint y
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
    "Modified: / 29.1.2000 / 12:17:42 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   494
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   495
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   496
at:aPoint put:aPixelColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   497
    "set a pixel"
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
    ^ self atX:aPoint x y:aPoint y put:aPixelColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   500
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   501
    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   502
     Display rootView at:(0@0) put:(Color red).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   503
     Display rootView at:(1@1) put:(Color red).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   504
     Display rootView at:(2@2) put:(Color red).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   505
     Display rootView at:(3@3) put:(Color red).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   506
     Display rootView at:(4@4) put:(Color red).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   507
     Display rootView at:(5@5) put:(Color red).
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
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   510
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   511
atX:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   512
    "return the pixel at the coordinate given by x/y"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   513
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   514
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   515
	^ super 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
    ^ gc atX:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   518
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   519
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   520
atX:x y:y put:aPixelColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   521
    "set a pixel"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   522
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   523
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   524
	super atX:x y:y put:aPixelColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   525
	^ self.
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
    gc atX:x y:y put:aPixelColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   528
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   529
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   530
backgroundPaint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   531
    "return the background paint color.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   532
     (used for opaqueForms and opaqueStrings)"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   533
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   534
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   535
	^ super 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
    ^ gc backgroundPaint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   538
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   539
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   540
backgroundPaint:aColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   541
    "set the background-paint color; this is used in opaque-draw
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   542
     operations"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   543
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   544
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   545
	super backgroundPaint:aColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   546
	^ self.
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
    gc backgroundPaint:aColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   549
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   550
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   551
basicFont
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   552
    "return the font for drawing"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   553
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   554
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   555
	^ super 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
    ^ gc basicFont
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   558
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   559
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   560
basicFont:aFont
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   561
    "set the font for drawing if it has changed.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   562
     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
   563
     (i.e. it must not imply a redraw operation)"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   564
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   565
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   566
	super basicFont:aFont.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   567
	^ self.
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
    gc basicFont:aFont
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   570
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   571
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   572
blackColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   573
    gc isNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   574
        ^ Color black.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   575
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   576
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   577
        ^ super 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
    ^ gc device blackColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   580
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   581
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   582
bottomCenter
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   583
    "return the topCenter point"
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
    ^ (self left + (width//2) - 1) @ (self top + height - 1)
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   586
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   587
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   588
bottomLeft
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   589
    "return the bottomLeft point"
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
    ^ (self left) @ (self top + height - 1)
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   592
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   593
2947
53f0ea77b1e4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2030
diff changeset
   594
boundingBox
5321
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   595
    ^ Rectangle
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   596
	origin: 0 @ 0
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
   597
	corner: width @ height
2947
53f0ea77b1e4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2030
diff changeset
   598
53f0ea77b1e4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2030
diff changeset
   599
!
53f0ea77b1e4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2030
diff changeset
   600
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   601
capStyle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   602
    "return the current cap-style for line-drawing.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   603
     possible styles are: #notLast, #butt, #round, #projecting"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   604
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   605
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   606
	^ super 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
    ^ gc capStyle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   609
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   610
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   611
capStyle:aStyleSymbol
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   612
    "set the cap-style for line-drawing;
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   613
     possible styles are: #notLast, #butt, #round, #projecting"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   614
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   615
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   616
	super capStyle:aStyleSymbol.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   617
	^ self.
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
    gc capStyle:aStyleSymbol
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
    "Modified: 12.5.1996 / 22:24:30 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   622
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   623
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   624
center
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   625
    "return the point at the center of the receiver"
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
    ^ (self left + (width // 2)) @ (self top + (height // 2))
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   628
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   629
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   630
characterEncoding
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   631
    "returns a symbol describing how the contents is encoded internally.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   632
     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
   633
     occur when drawing).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   634
     This is (currently) only passed down from the fileBrowser,
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   635
     and required when japanese/chinese/korean text is edited.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   636
     (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
   637
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   638
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   639
	^ super 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
    ^ gc characterEncoding
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   642
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   643
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   644
characterEncoding:encodingArg
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   645
    "define how the contents is encoded internally.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   646
     This should normally never be required, as ST/X now assumes
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   647
     unicode (of which iso8859-1 is a subset) encoding.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   648
     The possibility to change the characterEncoding is provided as
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   649
     a backward compatibility hook for programs which want to use
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   650
     another encoding internally. One such view is the CharacterSetView,
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   651
     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
   652
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   653
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   654
	super characterEncoding:encodingArg.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   655
	^ self.
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
    gc characterEncoding:encodingArg
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   658
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   659
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   660
clipByChildren
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   661
    "drawing shall be done into my view only (default)"
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
    <resource:#obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   664
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   665
    self obsoleteMethodWarning:'use #clippedByChildren:true'.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   666
    ^ self clippedByChildren:true
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
    "Created: 17.7.1996 / 13:25:55 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   669
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   670
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   671
clipRect
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   672
    "return the clip-rectangle for drawing.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   673
     If there is currently no active clip, return the underlying
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   674
     displaySurfaces (i.e. views) bounds. Added for ST-80 compatibility."
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
    <resource:#obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   677
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   678
    self obsoleteMethodWarning:'use #clippingBounds'.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   679
    ^ self clippingBounds.
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
    "Modified: 28.5.1996 / 14:14:53 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   682
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   683
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   684
clipRect:aRectangle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   685
    "set the drawing clip-rectangle"
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
    <resource:#obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   688
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   689
    self obsoleteMethodWarning:'use #deviceClippingBounds:'.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   690
    ^ gc deviceClippingBounds:aRectangle
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
    "Modified: 28.5.1996 / 14:13:09 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   693
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   694
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   695
clippedByChildren:aBoolean
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   696
    "turn on/off drawing over children.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   697
     If on, a superview may draw 'over' its children.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   698
     If off (the default), drawing is 'under' its children.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   699
     Only useful for the rootView, to draw over any visible views.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   700
     (for example, when dragging a rubber-line)"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   701
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   702
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   703
        super clippedByChildren:aBoolean.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   704
        ^ self.
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
    gc clippedByChildren:aBoolean.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   707
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   708
    "Created: 17.7.1996 / 13:25:16 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   709
    "Modified: 29.4.1997 / 15:33:55 / dq"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   710
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   711
6217
a8a86bfb5cb5 class: GraphicsMedium
Stefan Vogel <sv@exept.de>
parents: 6045
diff changeset
   712
clippingBounds
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   713
    "return the clipping rectangle for drawing, nil if there is none."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   714
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   715
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   716
        ^ super 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
    ^ gc clippingBounds
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   719
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   720
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   721
clippingBounds:aRectangleOrNil
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   722
    "set the clipping rectangle for drawing (in logical coordinates);
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   723
     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
   724
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   725
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   726
        super clippingBounds:aRectangleOrNil.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   727
        ^ self.
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
    gc clippingBounds:aRectangleOrNil
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   730
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   731
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   732
clippingBoundsOrNil
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   733
    "return the clipping rectangle for drawing, nil if there is none."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   734
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   735
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   736
        ^ super clippingBoundsOrNil.
6217
a8a86bfb5cb5 class: GraphicsMedium
Stefan Vogel <sv@exept.de>
parents: 6045
diff changeset
   737
    ].
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   738
    ^ gc clippingBoundsOrNil
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   739
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   740
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   741
clippingRectangle:aRectangleOrNil
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   742
    "set the clipping rectangle for drawing (in logical coordinates);
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   743
     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
   744
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   745
    <resource: #obsolete>
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
    self clippingBounds:aRectangleOrNil
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   748
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   749
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   750
clippingRectangleOrNil
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   751
    "return the clipping rectangle for drawing, nil if there is none."
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
    <resource: #obsolete>
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
    ^ self clippingBoundsOrNil
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   756
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   757
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   758
colorAt:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   759
    "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
   760
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   761
    ^ self colorAtX:(aPoint x) y:(aPoint y)
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
    "Modified: 1.8.1997 / 20:01:58 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   764
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   765
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   766
colorAtX:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   767
    "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
   768
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   769
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   770
	^ super 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
    ^ gc colorAtX:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   773
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   774
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   775
container
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   776
    "return my container - for protocol compatibility"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   777
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   778
    ^ nil
6217
a8a86bfb5cb5 class: GraphicsMedium
Stefan Vogel <sv@exept.de>
parents: 6045
diff changeset
   779
!
a8a86bfb5cb5 class: GraphicsMedium
Stefan Vogel <sv@exept.de>
parents: 6045
diff changeset
   780
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   781
corner
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   782
    "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
   783
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   784
    ^ (self left + width - 1) @ (self top + height - 1)
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   785
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   786
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   787
corner:aPoint
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   788
    "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
   789
     aPoint while leaving the origin unchanging "
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
    self extent:(aPoint x - self left + 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
		(aPoint y - self top + 1)
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   794
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   795
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   796
dashStyle:aDashList offset:dashOffset
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   797
    "define dashes. Each element of the dashList specifies the length
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   798
     of a corresponding dash. For example, setting it to [4 4]
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   799
     defines 4on-4off dashing;
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   800
     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
   801
     The dashOffset specifies where in the dashList the dashing starts.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   802
     Ignored here - this may not be supported by all graphics devices."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   803
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   804
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   805
	^ super 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
    ^ gc dashStyle:aDashList offset:dashOffset
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   808
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   809
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   810
device
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   811
    "return the device, the receiver is associated with"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   812
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   813
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   814
        ^ super device.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   815
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   816
    gc isNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   817
        ^ nil.
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
    ^ gc device
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   820
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   821
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   822
device:aDevice
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   823
    "set the device"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   824
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   825
    aDevice isNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   826
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   827
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   828
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   829
    gc isNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   830
        gc := aDevice newGraphicsContextFor:self.
7285
d047c5fb149a Compatibility: reintroduce `device` instvar in `GraphicsMedium`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800
diff changeset
   831
        device := aDevice.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   832
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   833
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   834
7285
d047c5fb149a Compatibility: reintroduce `device` instvar in `GraphicsMedium`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800
diff changeset
   835
    gc device:aDevice.
d047c5fb149a Compatibility: reintroduce `device` instvar in `GraphicsMedium`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800
diff changeset
   836
    device := aDevice.
d047c5fb149a Compatibility: reintroduce `device` instvar in `GraphicsMedium`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800
diff changeset
   837
d047c5fb149a Compatibility: reintroduce `device` instvar in `GraphicsMedium`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800
diff changeset
   838
    "Modified: / 03-04-2016 / 16:03:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   839
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   840
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   841
deviceClippingRectangle:aRectangleOrNil
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   842
    "set the clipping rectangle for drawing (in device coordinates);
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   843
     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
   844
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   845
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   846
	super deviceClippingRectangle:aRectangleOrNil.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   847
	^ self.
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
    gc deviceClippingRectangle:aRectangleOrNil
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   850
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   851
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   852
drawableId
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   853
    "return the id of the drawable on the device"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   854
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   855
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   856
        ^ super drawableId.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   857
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   858
    gc isNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   859
        ^ nil.
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
    ^ gc drawableId
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   862
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   863
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   864
extent
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   865
    "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
   866
     coordinate"
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
    ^ width @ height
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   869
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   870
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   871
extent:extent
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   872
    "set the extent"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   873
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   874
    width := extent x.
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   875
    height := extent y
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   876
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   877
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   878
font
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   879
    "return the current drawing font"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   880
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   881
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   882
	^ super 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
    ^ gc font
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   885
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   886
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   887
font:aFont
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   888
    "set the font for drawing if it has changed.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   889
     This should be redefined in some widget to perform an automatic
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   890
     redraw. See also: #basicFont:"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   891
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   892
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   893
        super font:aFont.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   894
    ] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   895
        gc font:aFont.
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
    self changed:#font.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   898
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   899
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   900
function
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   901
    "return the current drawing function"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   902
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   903
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   904
	^ super 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
    ^ gc function
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   907
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   908
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   909
function:aSymbol
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   910
    "set the drawing function if it has changed"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   911
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   912
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   913
	super function:aSymbol.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   914
	^ self.
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
    gc function:aSymbol
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   917
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   918
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   919
gcId
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   920
    "return the receivers graphic context id on the device"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   921
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   922
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   923
        ^ super gcId.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   924
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   925
    gc isNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   926
        ^ nil.
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
    ^ gc gcId.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   929
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   930
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   931
graphicsContext
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   932
    "for ST-80 compatibility"
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
    ^ gc
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   935
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   936
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   937
graphicsDevice
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   938
    "same as #device, for ST-80 compatibility"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   939
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   940
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   941
        ^ super graphicsDevice.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   942
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   943
    gc isNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   944
        ^ nil.
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
    ^ gc graphicsDevice
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   947
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   948
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   949
height
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   950
    "return the height of the receiver"
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
    ^ height
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   953
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   954
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   955
height:anInteger
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   956
    "set the height of the receiver"
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
    height := anInteger
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   959
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   960
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   961
id
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   962
    "return the id of the drawable on the device"
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
    ^ self drawableId
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   965
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   966
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   967
joinStyle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   968
    "return the current join-style for polygon-drawing.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   969
     possible styles are: #miter, #bevel, #round"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   970
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   971
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   972
	^ super 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
    ^ gc joinStyle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   975
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   976
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   977
joinStyle:aStyleSymbol
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   978
    "set the join-style of lines in polygon-drawing;
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   979
     possible styles are: #miter, #bevel, #round"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   980
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   981
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   982
	super joinStyle:aStyleSymbol.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   983
	^ self.
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
    gc joinStyle:aStyleSymbol
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   986
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
   987
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   988
left
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   989
    "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
   990
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   991
    ^ 0
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   992
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   993
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   994
leftCenter
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   995
    "return the leftCenter point"
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
    ^ (self left) @ (self top + (height // 2) - 1)
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   998
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   999
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1000
lineStyle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1001
    "return the current line-drawing-style.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1002
     possible styles are: #solid, #dashed, #doubleDashed,
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1003
     #dotted, #dashDot or #dashDotDot."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1004
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1005
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1006
	^ super 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
    ^ gc lineStyle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1009
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1010
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1011
lineStyle:aStyleSymbol
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1012
    "set the line-drawing-style;
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1013
     possible styles are: #solid, #dashed, #doubleDashed,
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1014
     #dotted, #dashDot or #dashDotDot."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1015
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1016
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1017
	super lineStyle:aStyleSymbol.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1018
	^ self.
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
    gc lineStyle:aStyleSymbol
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1021
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1022
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1023
lineWidth
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1024
    "return the current drawing linewidth"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1025
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1026
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1027
	^ super 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
    ^ gc lineWidth
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1030
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1031
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1032
lineWidth:aNumber
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1033
    "set the line drawing width in pixels"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1034
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1035
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1036
	super lineWidth:aNumber.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1037
	^ self.
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
    gc lineWidth:aNumber
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1040
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1041
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1042
mask
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1043
    "return the current drawing mask"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1044
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1045
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1046
	^ super 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
    ^ gc mask
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1049
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1050
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1051
mask:aForm
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1052
    "set the drawing mask"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1053
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1054
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1055
	super mask:aForm.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1056
	^ self.
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
    gc mask:aForm
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1059
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1060
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1061
maskOrigin
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1062
    "return the origin within the mask (used to draw with patterns).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1063
     Should be redefined in classes which support it.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1064
     This is an alias for ST-80's #phase"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1065
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1066
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1067
	^ super 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
    ^ gc maskOrigin
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1070
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1071
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1072
maskOrigin:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1073
    "set the origin within the mask (used to draw with patterns).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1074
     Should be redefined in classes which support it.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1075
     This is an alias for ST-80's #phase:"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1076
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1077
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1078
	super maskOrigin:aPoint.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1079
	^ self.
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
    gc maskOrigin:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1082
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1083
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1084
maskOriginX:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1085
    "set the origin within the mask (used to draw with patterns).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1086
     Should be redefined in classes which support it.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1087
     This is an alias for ST-80's #phase:"
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
    self maskOrigin:(x @ y)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1090
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1091
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1092
medium
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1093
    "return the destination medium i.e. the underlying graphics device"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1094
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1095
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1096
        ^ super 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
    ^ gc graphicsDevice
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1099
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1100
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1101
noClipByChildren
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1102
    "drawing shall also be done into subviews"
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
    <resource:#obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1105
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1106
    self obsoleteMethodWarning:'use #clippedByChildren:false'.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1107
    ^ self clippedByChildren:false
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
    "Created: 17.7.1996 / 14:15:54 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1110
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1111
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1112
origin
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1113
    "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
  1114
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1115
    ^ 0 @ 0
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1116
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1117
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1118
paint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1119
    "return the current paint drawing color"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1120
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1121
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1122
	^ super 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
    ^ gc paint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1125
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1126
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1127
paint:aColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1128
    "set the drawing painting color, aColor can be a dithered one"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1129
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1130
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1131
	super paint:aColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1132
	^ self.
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
    gc paint:aColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1135
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1136
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1137
paint:fgColor on:bgColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1138
    "set the paint and backgroundPaint, used for text and bitmaps.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1139
     Both colors may be dithered colors"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1140
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1141
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1142
	super paint:fgColor on:bgColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1143
	^ self.
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
    gc paint:fgColor on:bgColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1146
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1147
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1148
paint:fgColor on:bgColor function:f
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1149
    "set paint, background-paint and function"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1150
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1151
    self paint:fgColor on:bgColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1152
    self function:f
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
    "Modified: 16.5.1996 / 15:36:35 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1155
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1156
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  1157
realized
2954
0182e5ac0247 added #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2947
diff changeset
  1158
    "return true, if the receiver is realized.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1159
     The receiver may still be unmapped, if the container is unrealized.
2955
8b8000553767 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2954
diff changeset
  1160
     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
  1161
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  1162
    ^ realized
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  1163
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  1164
2955
8b8000553767 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2954
diff changeset
  1165
reallyRealized
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1166
    "return true, if the receiver is realized and all containers
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1167
     are realized."
2955
8b8000553767 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2954
diff changeset
  1168
8b8000553767 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2954
diff changeset
  1169
    ^ self realized
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1170
2955
8b8000553767 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2954
diff changeset
  1171
!
8b8000553767 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2954
diff changeset
  1172
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1173
rightCenter
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1174
    "return the leftCenter point"
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
    ^ (self left + width - 1) @ (self top + (height // 2) - 1)
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1177
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1178
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1179
setClippingBounds:aRectangleOrNil
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1180
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1181
        super setClippingBounds:aRectangleOrNil.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1182
        ^ self.
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
    gc setClippingBounds:aRectangleOrNil
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1185
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1186
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1187
setGraphicsExposures:aBoolean
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1188
    "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
  1189
     of graphics exposures"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1190
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1191
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1192
	super setGraphicsExposures:aBoolean.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1193
	^ self.
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
    gc setGraphicsExposures:aBoolean
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1196
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1197
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1198
setMaskOrigin:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1199
    <resource: #obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1200
    "set the origin within the mask (used to draw with patterns).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1201
     OBSOLETE: use #maskOrigin: or #phase:"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1202
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1203
    self obsoleteMethodWarning:'use #maskOrigin:'.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1204
    ^ self maskOriginX:aPoint x y:aPoint y
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
    "Modified: / 26.1.1998 / 18:54:14 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1207
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1208
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1209
setMaskOriginX:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1210
    <resource: #obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1211
    "set the origin within the mask (used to draw with patterns).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1212
     OBSOLETE: use #maskOriginX:y: or #phase:"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1213
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1214
    self obsoleteMethodWarning:'use #maskOriginX:y:'.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1215
    ^ self maskOriginX:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1216
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1217
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1218
setWidth:w height:h
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1219
    "set both width and height - not to be redefined"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1220
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1221
    width := w.
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1222
    height := h
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1223
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1224
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1225
top
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1226
    "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
  1227
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1228
    ^ 0
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1229
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1230
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1231
topCenter
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1232
    "return the topCenter point"
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
    ^ (self left + (width//2) - 1) @ (self top)
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1235
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1236
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1237
topRight
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1238
    "return the topRight point"
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
    ^ (self left + width - 1) @ (self top)
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1241
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1242
2030
5b29d7626887 added #viewBackground for protocol compatibility with real views.
ca
parents: 741
diff changeset
  1243
viewBackground
5b29d7626887 added #viewBackground for protocol compatibility with real views.
ca
parents: 741
diff changeset
  1244
    "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
  1245
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1246
    ^ self backgroundPaint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1247
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1248
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1249
viewOrigin
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1250
    "return the drawables visible origin (for scrolling)"
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
    ^ 0@0
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1253
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1254
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1255
whiteColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1256
    gc isNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1257
        ^ Color white.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1258
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1259
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1260
        ^ super graphicsDevice whiteColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1261
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1262
    ^ gc graphicsDevice whiteColor
2030
5b29d7626887 added #viewBackground for protocol compatibility with real views.
ca
parents: 741
diff changeset
  1263
!
5b29d7626887 added #viewBackground for protocol compatibility with real views.
ca
parents: 741
diff changeset
  1264
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1265
width
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1266
    "return the width of the receiver"
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
    ^ width
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1269
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1270
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1271
width:anInteger
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1272
    "set the width of the receiver"
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
    width := anInteger
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1275
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1276
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1277
width:w height:h
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1278
    "set both width and height of the receiver"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1279
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1280
    width := w.
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1281
    height := h
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1282
! !
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1283
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1284
!GraphicsMedium methodsFor:'accessing-internals'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1285
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1286
background
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1287
    <resource: #obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1288
    "return the current background drawing color.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1289
     OBSOLETE: use #paint: / #backgroundPaint: / #paint:on:"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1290
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1291
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1292
	^ super 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
    ^ gc background
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
    "Modified: 12.5.1996 / 22:28:09 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1297
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1298
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1299
background:aColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1300
    <resource: #obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1301
    "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
  1302
     OBSOLETE: this method will vanish; use #paint: / #backgroundPaint: / #paint:on:"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1303
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1304
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1305
	super background:aColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1306
	^ self.
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
    gc background:aColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1309
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1310
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1311
foreground
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1312
    <resource: #obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1313
    "return the current foreground drawing color.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1314
     OBSOLETE: use #paint: / #paint:on:"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1315
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1316
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1317
	^ super 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
    ^ gc foreground
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1320
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1321
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1322
foreground:aColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1323
    <resource: #obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1324
    "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
  1325
     OBSOLETE: this method will vanish; use #paint: / #paint:on:"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1326
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1327
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1328
	super foreground:aColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1329
	^ self.
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
    gc foreground:aColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1332
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1333
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1334
foreground:fgColor background:bgColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1335
    <resource: #obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1336
    "set both internal foreground and internal background colors
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1337
     - these must be real colors.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1338
     OBSOLETE: this method will vanish; use #paint: / #paint:on:"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1339
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1340
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1341
	super foreground:fgColor background:bgColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1342
	^ self.
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
    gc foreground:fgColor background:bgColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1345
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1346
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1347
foreground:fgColor background:bgColor function:fun
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1348
    <resource: #obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1349
    "set foreground, background colors and function.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1350
     OBSOLETE: this method will vanish; use #paint: / #paint:on:"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1351
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1352
    self foreground:fgColor background:bgColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1353
    self function:fun
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
    "Modified: 12.5.1996 / 22:28:34 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1356
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1357
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1358
foreground:aColor function:fun
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1359
    <resource: #obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1360
    "set the foreground color and function for drawing.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1361
     OBSOLETE: this method will vanish; use #paint: / #paint:on:"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1362
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1363
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1364
	super foreground:aColor function:fun.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1365
	^ self.
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
    gc foreground:aColor function:fun
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1368
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1369
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1370
setRealized:aBoolean
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1371
    "low level special interface to manipulate the realized state.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1372
     Non-public interface, only to be used by experts.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1373
     (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
  1374
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1375
    realized := aBoolean
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1376
! !
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
!GraphicsMedium methodsFor:'accessing-transformation'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1379
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1380
scale
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1381
    "return the scale factor (as point) of the transformation"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1382
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1383
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1384
        ^ super 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
    ^ gc scale
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1387
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1388
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1389
scale:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1390
    "set the scale factor of the transformation"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1391
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1392
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1393
        super scale:aPoint.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1394
        ^ self.
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
    ^ gc scale:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1397
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1398
6731
24e7fa5e7f72 Added lost GraphicsMedium>>displayString:centeredAt:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6730
diff changeset
  1399
transformation
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1400
    "return the transformation"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1401
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1402
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1403
        ^ super 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
    ^ gc transformation
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1406
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1407
6731
24e7fa5e7f72 Added lost GraphicsMedium>>displayString:centeredAt:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6730
diff changeset
  1408
transformation:aTransformation
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1409
    "set the transformation"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1410
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1411
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1412
        super transformation:aTransformation.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1413
        ^ self.
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
    ^ gc transformation:aTransformation
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1416
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1417
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1418
translateBy:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1419
    "add to the translation offset of the transformation"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1420
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1421
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1422
        super translateBy:aPoint.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1423
        ^ self.
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
    ^ gc translateBy:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1426
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1427
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1428
translation
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1429
    "return the translation factor (as point) of the transformation"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1430
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1431
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1432
        ^ super 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
    ^ gc translation
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1435
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1436
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1437
translation:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1438
    "set the translation offset of the transformation"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1439
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1440
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1441
        super translation:aPoint.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1442
        ^ self.
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
    ^ gc translation:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1445
! !
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
!GraphicsMedium methodsFor:'basic drawing'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1448
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1449
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
  1450
    "draw an arc in a box
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1451
     - this could be recoded to draw using displayLine"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1452
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1453
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1454
	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
  1455
	^ self.
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
    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
  1458
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1459
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1460
displayDottedRectangleX:x y:y width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1461
    "draw a dotted-line rectangle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1462
     A general implementation is found here; deviceGC's
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1463
     may reimplement this if directly supported by the device"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1464
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1465
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1466
	super displayDottedRectangleX:x y:y width:w height:h.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1467
	^ self.
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
    gc displayDottedRectangleX:x y:y width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1470
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1471
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1472
displayHorizontalWavelineFromX:x0 y:y0 toX:x1
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1473
    "draw a horizontal wave-line from x0/y0 to x1/y0"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1474
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1475
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1476
	super displayHorizontalWavelineFromX:x0 y:y0 toX:x1.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1477
	^ self.
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
    gc displayHorizontalWavelineFromX:x0 y:y0 toX:x1
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1480
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1481
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1482
displayLineFromX:x0 y:y0 toX:x1 y:y1
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1483
    "draw a line from x0/y0 to x1/y1"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1484
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1485
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1486
	super displayLineFromX:x0 y:y0 toX:x1 y:y1.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1487
	^ self.
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
    gc displayLineFromX:x0 y:y0 toX:x1 y:y1
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1490
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1491
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1492
displayOpaqueForm:aForm x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1493
    "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
  1494
     drawn in current fg, 0's in current bg color.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1495
     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
  1496
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1497
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1498
	super displayOpaqueForm:aForm x:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1499
	^ self.
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
    gc displayOpaqueForm:aForm x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1502
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1503
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1504
displayOpaqueString:aString from:index1 to:index2 x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1505
    "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
  1506
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1507
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1508
        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
  1509
        ^ self.
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
    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
  1512
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1513
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1514
displayPolygon:aPolygon
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1515
    "draw a polygon
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1516
     - this could be recoded to draw using displayLine"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1517
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1518
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1519
	super displayPolygon:aPolygon.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1520
	^ self.
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
    gc displayPolygon:aPolygon
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1523
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1524
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1525
displayRectangleX:x y:y width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1526
    "draw a rectangle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1527
     - this could be recoded to draw using displayLine"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1528
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1529
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1530
	super displayRectangleX:x y:y width:w height:h.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1531
	^ self.
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
    gc displayRectangleX:x y:y width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1534
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1535
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1536
displayString:aString from:index1 to:index2 x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1537
    "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
  1538
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1539
    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
  1540
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1541
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1542
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
  1543
    "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
  1544
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1545
    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
  1546
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1547
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1548
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
  1549
    "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
  1550
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1551
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1552
        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
  1553
        ^ self.
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
    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
  1556
! !
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
!GraphicsMedium methodsFor:'basic filling'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1559
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1560
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
  1561
    "fill an arc with current paint color"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1562
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1563
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1564
	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
  1565
	^ self.
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
    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
  1568
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1569
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1570
fillPolygon:points
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1571
    "fill a polygon with current paint color"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1572
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1573
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1574
	super fillPolygon:points.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1575
	^ self.
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
    gc fillPolygon:points
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1578
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1579
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1580
fillRectangleX:x y:y width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1581
    "fill a rectangle with current paint color"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1582
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1583
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1584
	super fillRectangleX:x y:y width:w height:h.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1585
	^ self.
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
    gc fillRectangleX:x y:y width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1588
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1589
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1590
fillRectangleX:x y:y width:w height:h color:aColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1591
    "fill a rectangle with given color"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1592
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1593
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1594
	super fillRectangleX:x y:y width:w height:h color:aColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1595
	^ self.
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
    gc fillRectangleX:x y:y width:w height:h color:aColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1598
! !
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
!GraphicsMedium methodsFor:'bit blitting'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1601
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1602
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
  1603
    "copy bits from a smalltalk byteArray.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1604
     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
  1605
     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
  1606
     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
  1607
     method to whatever the device needs."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1608
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1609
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1610
	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
  1611
	^ self.
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
    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
  1614
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1615
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1616
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
  1617
    "copy bits from a smalltalk byteArray.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1618
     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
  1619
     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
  1620
     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
  1621
     method to whatever the device needs.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1622
     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
  1623
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1624
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1625
	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
  1626
	^ self.
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
    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
  1629
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1630
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1631
copyFrom:aGC toX:dstX y:dstY
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1632
    "copy from a drawable - maybe self"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1633
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1634
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1635
	super copyFrom:aGC toX:dstX y:dstY.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1636
	^ self.
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
    gc copyFrom:aGC toX:dstX y:dstY
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1639
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1640
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1641
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
  1642
    "copy from a drawable - maybe self"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1643
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1644
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1645
	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
  1646
	^ self.
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
    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
  1649
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1650
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1651
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
  1652
    "copy from aDrawable into the receiver;
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1653
     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
  1654
     All coordinates are in device coordinates.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1655
     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
  1656
     - otherwise, it returns when the scroll operation is finished.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1657
     (not all devices care for this).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1658
     If the receiver is a pixmap, the call always returns immediately."
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 deviceDrawable asy|
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
    myDevice := gc graphicsDevice.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1663
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1664
    ((aDrawable graphicsDevice ~~ myDevice)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1665
     or:[aDrawable isImage]) ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1666
        deviceDrawable := aDrawable asFormOn:myDevice.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1667
    ] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1668
        deviceDrawable := aDrawable
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1669
    ].
7318
83b501bbf3b0 Issue #84: Can not place widget on...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7297
diff changeset
  1670
    asy := async or:[self isView not or:[ deviceDrawable isForm ]].
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1671
    asy ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1672
        self catchExpose
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1673
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1674
    gc == self ifTrue:[
7318
83b501bbf3b0 Issue #84: Can not place widget on...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7297
diff changeset
  1675
        super copyFrom:deviceDrawable x:srcX y:srcY toX:dstX y:dstY width:w height:h async:true.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1676
    ] ifFalse:[
7318
83b501bbf3b0 Issue #84: Can not place widget on...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7297
diff changeset
  1677
        gc copyFrom:deviceDrawable x:srcX y:srcY toX:dstX y:dstY width:w height:h async:true.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1678
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1679
    asy ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1680
        myDevice flush.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1681
        self waitForExpose
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1682
    ]
7318
83b501bbf3b0 Issue #84: Can not place widget on...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7297
diff changeset
  1683
83b501bbf3b0 Issue #84: Can not place widget on...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7297
diff changeset
  1684
    "Modified: / 26-04-2016 / 20:30:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6472
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1687
copyFrom:aGC x:dstX y:dstY width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1688
    "copy from a drawable - maybe 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 == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1691
	super copyFrom:aGC x:dstX y:dstY width:w height:h.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1692
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1693
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1694
    gc copyFrom:aGC x:dstX y:dstY width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1695
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1696
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1697
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
  1698
    "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
  1699
     background, while 1's are drawn with foreground color.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1700
     The depth of aDrawable must (should) be 1.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1701
     The drawable must have been allocated on the same device.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1702
     All coordinates are in device coordinates."
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 == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1705
	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
  1706
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1707
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1708
    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
  1709
! !
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1710
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  1711
!GraphicsMedium methodsFor:'copying'!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  1712
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  1713
postCopy
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  1714
    "this may not be enough to allow copying of views ..."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  1715
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  1716
    super postCopy.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  1717
    realized := false.
4403
3342601d3fed +postDeepCopy
Claus Gittinger <cg@exept.de>
parents: 4068
diff changeset
  1718
!
3342601d3fed +postDeepCopy
Claus Gittinger <cg@exept.de>
parents: 4068
diff changeset
  1719
3342601d3fed +postDeepCopy
Claus Gittinger <cg@exept.de>
parents: 4068
diff changeset
  1720
postDeepCopy
3342601d3fed +postDeepCopy
Claus Gittinger <cg@exept.de>
parents: 4068
diff changeset
  1721
    super postDeepCopy.
3342601d3fed +postDeepCopy
Claus Gittinger <cg@exept.de>
parents: 4068
diff changeset
  1722
    realized := false.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  1723
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  1724
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1725
!GraphicsMedium methodsFor:'drawing'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1726
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1727
display:someObject at:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1728
    "draw someObject - this must understand the #displayOn:at: message"
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
    someObject displayOn:self at:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1731
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1732
    "Created: 28.5.1996 / 14:22:57 / cg"
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1735
displayArcIn:aRectangle from:startAngle angle:angle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1736
    "draw an arc in a box"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1737
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1738
    self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1739
	displayArcX:(aRectangle left)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1740
		  y:(aRectangle top)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1741
	      width:(aRectangle width)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1742
	     height:(aRectangle height)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1743
	       from:startAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1744
	      angle:angle
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1747
displayArcOrigin:origin corner:corner from:startAngle angle:angle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1748
    "draw an arc in a box"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1749
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1750
    |left top right bot|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1751
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1752
    left := origin x.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1753
    top := origin y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1754
    right := corner x.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1755
    bot := corner y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1756
    self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1757
	displayArcX:left
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1758
		  y:top
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1759
	      width:(right - left + 1)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1760
	     height:(bot - top + 1)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1761
	       from:startAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1762
	      angle:angle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1763
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1764
    "Modified: 8.5.1996 / 08:35:25 / cg"
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1767
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
  1768
    "draw an arc; apply transformation if nonNil"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1769
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1770
    <resource:#obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1771
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1772
    self obsoleteMethodWarning:'use #displayArcX:y:width:height:from:angle:'.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1773
    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
  1774
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1775
    "Modified: 8.5.1996 / 08:46:56 / cg"
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1778
displayCircle:aPoint radius:r
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1779
    "draw a circle around a center point"
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 == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1782
	super displayCircleX:(aPoint x) y:(aPoint y) radius:r.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1783
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1784
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1785
    gc displayCircleX:(aPoint x) y:(aPoint y) radius:r
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1788
displayCircleIn:aRectangle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1789
    "draw a circle in a box"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1790
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1791
    self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1792
	displayArcX:(aRectangle left)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1793
		  y:(aRectangle top)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1794
	      width:(aRectangle width)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1795
	     height:(aRectangle height)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1796
	       from:0
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1797
	      angle:360
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1798
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1799
    "Modified: 8.5.1996 / 08:35:40 / cg"
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1802
displayCircleX:x y:y radius:r
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1803
    "draw a circle around a center point"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1804
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1805
    |d|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1806
    d := 2 * r.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1807
    self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1808
	displayArcX:(x - r)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1809
		  y:(y - r)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1810
	      width:d
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1811
	     height:d
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1812
	       from:0
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1813
	      angle:360
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1814
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1815
    "Modified: 8.5.1996 / 08:36:03 / cg"
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1818
displayForm:aFormOrImage
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1819
    "draw a form (or image) at the origin"
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 == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1822
	super displayForm:aFormOrImage x:0 y:0.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1823
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1824
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1825
    gc displayForm:aFormOrImage x:0 y:0
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
    "Modified: / 24.4.1997 / 16:00:11 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1828
    "Created: / 9.11.1997 / 00:50:52 / cg"
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1831
displayForm:aFormOrImage at:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1832
    "draw a form (or image)"
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 == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1835
	super displayForm:aFormOrImage x:(aPoint x) y:(aPoint y).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1836
	^ self.
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
    gc displayForm:aFormOrImage x:(aPoint x) y:(aPoint y)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1839
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1840
    "Modified: 24.4.1997 / 16:00:11 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1841
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1842
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1843
displayForm:formToDraw x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1844
    "draw a form or image non opaque;
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1845
     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
  1846
     current paint-color, leaving pixels with 0-bits unchanged
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1847
     (i.e. only 1-bits are drawn from the form).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1848
     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
  1849
     settings are ignored and the form is drawn as-is.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1850
     Care must be taken, that the paint color is correctly allocated
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1851
     (by sending #on: to the color) before doing so.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1852
     Using functions other than #copy only makes sense if you are
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1853
     certain, that the colors are real colors (actually, only for
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1854
     noColor or allColor)."
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 == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1857
	super displayForm:formToDraw x:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1858
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1859
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1860
    gc displayForm:formToDraw x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1861
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1862
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1863
displayForm:aFormOrImage x:x y:y opaque:opaque
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1864
    "draw a form (or image) at x/y;
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1865
     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
  1866
     drawn in current paint color, 0's are ignored.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1867
     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
  1868
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1869
    opaque ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1870
	self displayOpaqueForm:aFormOrImage x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1871
    ] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1872
	self displayForm:aFormOrImage x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1873
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1874
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1875
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1876
displayImage:aFormOrImage
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1877
    "draw an image (or form).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1878
     Provided for ST-80 compatibilty;
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1879
     in ST/X, images are also handled by #displayForm:"
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 == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1882
	super displayForm:aFormOrImage x:0 y:0.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1883
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1884
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1885
    gc displayForm:aFormOrImage x:0 y:0
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1886
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1887
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1888
displayImage:aFormOrImage at:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1889
    "draw an image (or form).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1890
     Provided for ST-80 compatibilty;
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1891
     in ST/X, images are also handled by #displayForm:"
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 == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1894
	super displayForm:aFormOrImage x:(aPoint x) y:(aPoint y).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1895
	^ self.
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
    gc displayForm:aFormOrImage x:(aPoint x) y:(aPoint y)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1898
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1899
    "Modified: 24.4.1997 / 16:02:43 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1900
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1901
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1902
displayImage:aFormOrImage x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1903
    "draw an image (or form).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1904
     Provided for ST-80 compatibilty;
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1905
     in ST/X, images are also handled by #displayForm:"
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 == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1908
	super displayForm:aFormOrImage x:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1909
	^ self.
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
    gc displayForm:aFormOrImage x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1912
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1913
    "Created: 24.4.1997 / 16:03:03 / cg"
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1916
displayLineFrom:point1 to:point2
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1917
    "draw a line"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1918
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1919
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1920
	super 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
	^ self.
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
    gc displayLineFromX:(point1 x) y:(point1 y)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1925
		      toX:(point2 x) y:(point2 y)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1926
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1927
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1928
displayLineFromX:xStart y:yStart toX:xEnd y:yEnd brush:aForm
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1929
    "draw a line using a brush.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1930
     Here, a slow fallback is used, drawing into a
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1931
     temporary bitmap first, which is then displayed"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1932
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1933
    |deltaX deltaY dx dy px py destX destY p tempForm
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1934
     xMin xMax yMin yMax x1 x2 y1 y2|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1935
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1936
    xStart < xEnd ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1937
        xMin := xStart.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1938
        xMax := xEnd.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1939
    ] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1940
        xMin := xEnd.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1941
        xMax := xStart
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1942
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1943
    yStart < yEnd ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1944
        yMin := yStart.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1945
        yMax := yEnd.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1946
    ] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1947
        yMin := yEnd.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1948
        yMax := yStart
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1949
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1950
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1951
    tempForm := Form width:(xMax-xMin+1+aForm width)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1952
                     height:(yMax-yMin+1+aForm height)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1953
                     depth:aForm depth
7287
1e2a3258dd8a Replace all `self graphicsDevice` with `device`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7285
diff changeset
  1954
                     onDevice:device.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1955
    tempForm clear.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1956
    tempForm paint:(Color colorId:1) on:(Color colorId:0).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1957
    tempForm function:#or.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1958
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1959
    ((yStart = yEnd and:[xStart < xEnd])
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1960
    or: [yStart < yEnd]) ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1961
        x1 := xStart. y1 := yStart.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1962
        x2 := xEnd. y2 := yEnd.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1963
    ] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1964
        x1 := xEnd. y1 := yEnd.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1965
        x2 := xStart. y2 := yStart.
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1968
    x1 := x1 - xMin.  x2 := x2 - xMin.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1969
    y1 := y1 - yMin.  y2 := y2 - yMin.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1970
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1971
    destX := x1.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1972
    destY := y1.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1973
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1974
    "/ bresenham ...
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1975
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1976
    deltaX := x2 - x1.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1977
    deltaY := y2 - y1.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1978
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1979
    dx := deltaX sign.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1980
    dy := deltaY sign.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1981
    px := deltaY abs.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1982
    py := deltaX abs.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1983
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1984
    tempForm displayForm:aForm x:destX y:destY.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1985
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1986
    py > px ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1987
        "horizontal"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1988
        p := py // 2.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1989
        py timesRepeat:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1990
            destX := destX + dx.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1991
            (p := p - px) < 0 ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1992
                destY := destY + dy.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1993
                p := p + py
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1994
            ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1995
            tempForm displayForm:aForm x:destX y:destY.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1996
        ]
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1997
    ] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1998
        "vertical"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  1999
        p := px // 2.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2000
        px timesRepeat:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2001
            destY := destY + dy.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2002
            (p := p - py) < 0 ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2003
                destX := destX + dx.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2004
                p := p + px
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2005
            ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2006
            tempForm displayForm:aForm x:destX y:destY
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2007
        ]
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2008
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2009
    self displayForm:tempForm
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2010
                   x:xMin-aForm offset x
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2011
                   y:yMin-aForm offset y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2012
    tempForm close
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2013
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2014
    "Modified: 1.4.1997 / 21:29:06 / cg"
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2017
displayOpaqueString:aString at:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2018
    "draw a string with both fg and bg"
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 == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2021
	super displayOpaqueString:aString x:(aPoint x) y:(aPoint y).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2022
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2023
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2024
    gc displayOpaqueString:aString x:(aPoint x) y:(aPoint y)
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2027
displayOpaqueString:aString from:start to:stop at:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2028
    "draw part of a string - drawing both fg and bg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2029
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2030
    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
  2031
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2032
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2033
displayOpaqueString:aString x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2034
    "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
  2035
     background pixels in bgPaint color. If the transformation involves scaling,
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2036
     the fonts point-size is scaled as appropriate.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2037
     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
  2038
     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
  2039
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2040
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2041
	super displayOpaqueString:aString x:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2042
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2043
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2044
    gc displayOpaqueString:aString x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2045
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2046
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2047
displayOpaqueString:aString x:x y:y angle:drawAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2048
    "draw a string along a (possibly non-horizontal) line,
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2049
     drawing both fg and bg pixels.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2050
     The angle is in degrees, clock-wise, starting with 0 for
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2051
     a horizontal draw.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2052
     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
  2053
     which is rotated and finally drawn as usual.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2054
     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
  2055
	     operation - not to be used with cillions of strings ..."
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 == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2058
	super displayString:aString x:x y:y angle:drawAngle opaque:true.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2059
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2060
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2061
    gc displayString:aString x:x y:y angle:drawAngle opaque:true
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2062
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2063
    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2064
     |v|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2065
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2066
     v := View new.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2067
     v extent:300@200.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2068
     v openAndWait.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2069
     0 to:360 by:45 do:[:a |
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2070
	 v paint:Color black on:Color red.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2071
	 v displayOpaqueString:'hello world' x:100 y:100 angle:a.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2072
     ].
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2075
    "in contrast to non-opaque draw:
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2076
     |v|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2077
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2078
     v := View new.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2079
     v extent:300@200.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2080
     v openAndWait.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2081
     0 to:360 by:45 do:[:a |
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2082
	 v paint:Color black on:Color red.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2083
	 v displayString:'hello world' x:100 y:100 angle:a.
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2087
    "Modified: 23.4.1997 / 17:50:23 / cg"
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2090
displayPoint:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2091
    "draw a pixel"
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 == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2094
	super displayPointX:(aPoint x) y:(aPoint y).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2095
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2096
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2097
    gc displayPointX:(aPoint x) y:(aPoint y)
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2100
displayPointX:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2101
    "draw a point (with current paint-color); apply transformation if nonNil"
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 == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2104
	super displayPointX:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2105
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2106
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2107
    gc displayPointX:x y:y
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2110
displayRectangle:aRectangle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2111
    "draw a rectangle"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2112
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2113
    self displayRectangleX:(aRectangle left)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2114
			 y:(aRectangle top)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2115
		     width:(aRectangle width)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2116
		    height:(aRectangle height)
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2119
displayRectangleOrigin:origin corner:corner
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2120
    "draw a rectangle"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2121
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2122
    |top left|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2123
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2124
    left := origin x.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2125
    top := origin y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2126
    self displayRectangleX:left y:top
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2127
		     width:(corner x - left)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2128
		    height:(corner y - top)
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2131
displayRectangleOrigin:origin extent:extent
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2132
    "draw a rectangle"
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
    self displayRectangleX:(origin x) y:(origin y)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2135
		     width:(extent x)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2136
		    height:(extent y)
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
6730
73d56dff5532 Delegate GraphicsMedium>>display/fill RoundedRectangleX:... to GraphicsContext
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6472
diff changeset
  2139
displayRoundRectangleX:x y:y width:w height:h wCorner:wCorn hCorner:hCorn
73d56dff5532 Delegate GraphicsMedium>>display/fill RoundedRectangleX:... to GraphicsContext
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6472
diff changeset
  2140
    gc displayRoundRectangleX:x y:y width:w height:h wCorner:wCorn hCorner:hCorn
73d56dff5532 Delegate GraphicsMedium>>display/fill RoundedRectangleX:... to GraphicsContext
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6472
diff changeset
  2141
73d56dff5532 Delegate GraphicsMedium>>display/fill RoundedRectangleX:... to GraphicsContext
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6472
diff changeset
  2142
    "Modified: / 07-01-2015 / 20:17:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2145
displayString:aString at:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2146
    "draw a string - drawing fg only"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2147
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2148
    self displayString:aString x:aPoint x y:aPoint y
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
6579
db31ebd19872 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 6472
diff changeset
  2151
displayString:aString centeredAt:aPoint
db31ebd19872 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 6472
diff changeset
  2152
    "draw a string - drawing fg only"
db31ebd19872 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 6472
diff changeset
  2153
db31ebd19872 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 6472
diff changeset
  2154
    self displayString:aString centeredAtX:aPoint x y:aPoint y
db31ebd19872 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 6472
diff changeset
  2155
!
db31ebd19872 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 6472
diff changeset
  2156
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2157
displayString:aString centeredAtX:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2158
    "draw a string - drawing fg only"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2159
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2160
    |w h|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2161
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2162
    w := aString widthOn:self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2163
    h := aString heightOn:self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2164
    self displayString:aString x:x-(w/2) y:y-(h/2)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2165
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2166
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2167
displayString:aString from:start to:stop at:aPoint
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2168
    "draw part of a string - drawing fg only"
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
    ^ 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
  2171
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2172
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2173
displayString:aString x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2174
    "draw a string at the coordinate x/y -
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2175
     draw foreground-pixels only (in current paint-color),
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2176
     leaving background as-is. If the transformation involves scaling,
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2177
     the fonts point-size is scaled as appropriate."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2178
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2179
    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
  2180
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2181
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2182
displayString:aString x:x y:y angle:drawAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2183
    "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
  2184
     The angle is in degrees, clock-wise, starting with 0 for
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2185
     a horizontal draw.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2186
     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
  2187
     which is rotated and finally drawn as usual.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2188
     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
  2189
	     operation - not to be used with cillions of strings ..."
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
    self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2192
	displayString:aString x:x y:y angle:drawAngle opaque:false
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
     |v|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2196
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2197
     v := View new.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2198
     v extent:300@200.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2199
     v openAndWait.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2200
     0 to:360 by:90 do:[:a |
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2201
	 v paint:Color black.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2202
	 v displayString:'hello world' x:100 y:100 angle:a.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2203
     ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2204
    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2205
    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2206
     |v|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2207
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2208
     v := View new.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2209
     v extent:400@400.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2210
     v openAndWait.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2211
     0 to:360 by:5 do:[:a |
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2212
	 v paint:Color black.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2213
	 v displayString:'.........hello' x:200 y:200 angle:a.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2214
     ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2215
    "
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
     |v|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2218
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2219
     v := View new.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2220
     v extent:200@100.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2221
     v openAndWait.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2222
     v displayString:' hello' x:90 y:50 angle:0.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2223
     v displayString:' hello' x:90 y:50 angle:45.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2224
     v displayString:' hello' x:90 y:50 angle:90.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2225
     v displayString:' hello' x:90 y:50 angle:180.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2226
     v displayString:' hello' x:90 y:50 angle:270.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2227
    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2228
    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2229
     |v|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2230
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2231
     v := View new.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2232
     v extent:200@100.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2233
     v openAndWait.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2234
     v displayString:'hello' x:50 y:50 angle:0.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2235
     v displayString:'hello' x:50 y:50 angle:45.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2236
     v displayString:'hello' x:50 y:50 angle:90.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2237
     v displayString:'hello' x:50 y:50 angle:135.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2238
     v displayString:'hello' x:50 y:50 angle:180.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2239
     v displayString:'hello' x:50 y:50 angle:225.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2240
     v displayString:'hello' x:50 y:50 angle:270.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2241
     v displayString:'hello' x:50 y:50 angle:315.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2242
    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2243
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2244
    "Modified: 24.4.1997 / 12:51:25 / cg"
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2247
displayString:aString x:x y:y angle:drawAngle opaque:opaque
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2248
    "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
  2249
     The angle is in degrees, clock-wise, starting with 0 for
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2250
     a horizontal draw.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2251
     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
  2252
     which is rotated and finally drawn as usual.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2253
     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
  2254
	     operation - not to be used with cillions of strings ...
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2255
     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
  2256
	     this can (currently) only be done opaque"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2257
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2258
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2259
	super displayString:aString x:x y:y angle:drawAngle opaque:opaque.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2260
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2261
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2262
    gc displayString:aString x:x y:y angle:drawAngle opaque:opaque
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2263
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2264
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2265
displayUnscaledForm:formToDraw x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2266
    "draw a form or image non opaque and unscaled;
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2267
     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
  2268
     current paint-color, leaving pixels with 0-bits unchanged
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2269
     (i.e. only 1-bits are drawn from the form).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2270
     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
  2271
     settings are ignored and the form is drawn as-is.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2272
     Care must be taken, that the paint color is correctly allocated
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2273
     (by sending #on: to the color) before doing so.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2274
     Using functions other than #copy only makes sense if you are
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2275
     certain, that the colors are real colors (actually, only for
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2276
     noColor or allColor).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2277
     The origins coordinate is transformed, but the image itself is unscaled."
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
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2280
	super displayUnscaledForm:formToDraw x:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2281
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2282
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2283
    gc displayUnscaledForm:formToDraw x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2284
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2285
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2286
displayUnscaledOpaqueForm:formToDraw x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2287
    "draw a form or image opaque and unscaled;
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2288
     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
  2289
     current paint-color, 0 bits in background color.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2290
     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
  2291
     settings are ignored and the form is drawn as-is (opaque).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2292
     The origins coordinate is transformed, but the image itself is unscaled."
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
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2295
	super displayUnscaledOpaqueForm:formToDraw x:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2296
	^ self.
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
    gc displayUnscaledOpaqueForm:formToDraw x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2299
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2300
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2301
displayUnscaledOpaqueString:aString from:index1 to:index2 x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2302
    "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
  2303
     Draw foreground pixels in paint-color, background pixels in bgPaint color."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2304
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2305
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2306
	super displayUnscaledOpaqueString:aString from:index1 to:index2 x:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2307
	^ self.
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 displayUnscaledOpaqueString:aString from:index1 to:index2 x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2310
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2311
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2312
displayUnscaledOpaqueString:aString x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2313
    "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
  2314
     Draw foreground pixels in paint-color, background pixels in bgPaint color."
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
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2317
	super displayUnscaledOpaqueString:aString x:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2318
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2319
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2320
    gc displayUnscaledOpaqueString:aString x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2321
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2322
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2323
displayUnscaledString:aString from:index1 to:index2 x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2324
    "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
  2325
     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
  2326
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2327
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2328
	super displayUnscaledString:aString from:index1 to:index2 x:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2329
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2330
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2331
    gc displayUnscaledString:aString from:index1 to:index2 x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2332
!
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
displayUnscaledString:aString x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2335
    "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
  2336
     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
  2337
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2338
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2339
	super displayUnscaledString:aString x:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2340
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2341
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2342
    gc displayUnscaledString:aString x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2343
! !
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
!GraphicsMedium methodsFor:'drawing in device coordinates'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2346
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2347
displayDeviceForm:aForm x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2348
    "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
  2349
     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
  2350
     current paint-color, leaving pixels with 0-bits unchanged
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2351
     (i.e. only 1-bits are drawn from the form).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2352
     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
  2353
     settings are ignored and the form is drawn as-is;
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2354
     however, the mask is applied if present.
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
     The form should must have been allocated on the same device,
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2357
     otherwise its converted here, which slows down the draw.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2358
     No transformation or scaling is done.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2359
     Care must be taken, that the paint color is correctly allocated
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2360
     (by sending #on: to the color) before doing so.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2361
     Using functions other than #copy only makes sense if you are
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2362
     certain, that the colors are real colors (actually, only for
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2363
     noColor or allColor)."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2364
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2365
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2366
	super displayDeviceForm:aForm x:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2367
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2368
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2369
    gc displayDeviceForm:aForm x:x y:y
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2372
displayDeviceLineFromX:x1 y:y1 toX:x2 y:y2
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2373
    "draw a line in device coordinates"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2374
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2375
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2376
	super displayDeviceLineFromX:x1 y:y1 toX:x2 y:y2.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2377
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2378
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2379
    gc displayDeviceLineFromX:x1 y:y1 toX:x2 y:y2
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2380
!
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
displayDeviceOpaqueForm:aForm x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2383
    "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
  2384
     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
  2385
     current paint-color and 0-bits in the bgPaint color.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2386
     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
  2387
     settings are ignored and the form drawn as-is.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2388
     Any mask is ignored.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2389
     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
  2390
     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
  2391
     to the colors) before doing so.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2392
     The form should have been allocated on the same device; otherwise,
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2393
     its converted here, which slows down the draw.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2394
     Drawing is in device coordinates; no scaling is done."
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
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2397
	super displayDeviceOpaqueForm:aForm x:x y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2398
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2399
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2400
    gc displayDeviceOpaqueForm:aForm x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2401
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2402
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2403
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
  2404
    "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
  2405
     paint-color and background pixels in bgPaint-color.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2406
     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
  2407
     the case where paint and/or bgPaint are dithered colors.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2408
     No translation or scaling is done."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2409
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2410
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2411
	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
  2412
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2413
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2414
    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
  2415
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2416
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2417
displayDeviceOpaqueString:aString from:index1 to:index2 x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2418
    "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
  2419
     paint-color and background pixels in bgPaint-color.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2420
     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
  2421
     the case where paint and/or bgPaint are dithered colors.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2422
     No translation or scaling is done."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2423
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2424
    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
  2425
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2426
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2427
displayDeviceOpaqueString:aString x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2428
    "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
  2429
     paint-color and background pixels in bgPaint-color.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2430
     No translation or scaling is done"
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
    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
  2433
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2434
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2435
displayDeviceRectangleX:x y:y width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2436
    "draw a rectangle in device coordinates"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2437
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2438
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2439
	super displayDeviceRectangleX:x y:y width:w height:h.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2440
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2441
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2442
    gc displayDeviceRectangleX:x y:y width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2443
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2444
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2445
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
  2446
    "draw a substring at the coordinate x/y -
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2447
     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
  2448
     No translation or scaling is done"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2449
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2450
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2451
        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
  2452
        ^ self.
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
    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
  2455
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2456
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2457
displayDeviceString:aString from:index1 to:index2 x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2458
    "draw a substring at the coordinate x/y -
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2459
     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
  2460
     No translation or scaling is done"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2461
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2462
    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
  2463
!
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
displayDeviceString:aString x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2466
    "draw a string at the coordinate x/y -
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2467
     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
  2468
     No translation or scaling is done"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2469
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2470
    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
  2471
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2473
fillDeviceRectangleX:x y:y width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2474
    "fill a rectangle with current paint color (device coordinates)"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2475
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2476
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2477
	super fillDeviceRectangleX:x y:y width:w height:h.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2478
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2479
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2480
    gc fillDeviceRectangleX:x y:y width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2481
! !
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
!GraphicsMedium methodsFor:'edge drawing'!
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
drawEdgesForX:x y:y width:w height:h level:l
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2486
    "draw 3D edges into a rectangle"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2487
    self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2488
        drawEdgesForX:x y:y width:w height:h level:l
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2489
        shadow:self blackColor light:self whiteColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2490
        halfShadow:nil halfLight:nil
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2491
        style:nil
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2494
drawEdgesForX:x y:y width:w height:h level:l
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2495
                shadow:shadowColor light:lightColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2496
                halfShadow:halfShadowColor halfLight:halfLightColor
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2497
                style:edgeStyle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2498
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2499
    "draw 3D edges into a rectangle"
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
    |topLeftFg botRightFg topLeftHalfFg botRightHalfFg
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2502
     count "{ Class: SmallInteger }"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2503
     r
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2504
     b
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2505
     xi    "{ Class: SmallInteger }"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2506
     yi    "{ Class: SmallInteger }"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2507
     run paint|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2508
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2509
    count := l.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2510
    (count < 0) ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2511
        topLeftFg := shadowColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2512
        botRightFg := lightColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2513
        topLeftHalfFg := halfShadowColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2514
        botRightHalfFg := halfLightColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2515
        count := count negated
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2516
    ] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2517
        topLeftFg := lightColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2518
        botRightFg := shadowColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2519
        topLeftHalfFg := halfLightColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2520
        botRightHalfFg := halfShadowColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2521
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2522
    topLeftHalfFg isNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2523
        topLeftHalfFg := topLeftFg
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2524
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2525
    botRightHalfFg isNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2526
        botRightHalfFg := botRightFg
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2527
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2528
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2529
    r := x + w - 1. "right"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2530
    b := y + h - 1. "bottom"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2531
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2532
    self lineWidth:0.
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
    "top and left edges"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2535
    ((edgeStyle == #soft or:[edgeStyle == #softWin95]) and:["l" count > 0]) ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2536
        paint := topLeftHalfFg
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2537
    ] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2538
        paint := topLeftFg
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2539
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2540
    self paint:paint.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2541
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2542
    0 to:(count - 1) do:[:i |
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2543
        run := y + i.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2544
        run < b ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2545
            self displayDeviceLineFromX:x y:run toX:r y:run. "top"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2546
        ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2547
        run := x + i.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2548
        self displayDeviceLineFromX:run y:y toX:run y:b  "left"
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
    (edgeStyle == #soft or:[edgeStyle == #softWin95]) ifTrue:[
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
        self paint:topLeftFg.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2553
        self displayDeviceLineFromX:x y:y toX:r y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2554
        self displayDeviceLineFromX:x y:y toX:x y:b
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2555
"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2556
        (l > 1) ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2557
            edgeStyle == #softWin95 ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2558
                self paint:(Color veryLightGrey).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2559
            ] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2560
                (l > 2 and:[edgeStyle == #soft]) ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2561
                    self paint:(self device blackColor).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2562
                ] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2563
                    self paint:halfLightColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2564
                ]
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2565
            ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2566
            self displayDeviceLineFromX:x y:y toX:r y:y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2567
            self displayDeviceLineFromX:x y:y toX:x y:b.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2568
        ]
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2569
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2570
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2571
    xi := x + 1.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2572
    yi := y + 1.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2573
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2574
"/ does not look good
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2575
"/ style == #st80 iftrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2576
"/  yi := yi + 1
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2577
"/ ].
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
    "bottom and right edges"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2580
    ((edgeStyle == #soft or:[edgeStyle == #softWin95])
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2581
    "new:" and:[count > 1]) ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2582
        paint := botRightHalfFg
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2583
    ] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2584
        paint := botRightFg
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2585
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2586
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2587
    self paint:paint.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2588
    0 to:(count - 1) do:[:i |
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2589
        run := b - i.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2590
        run > y ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2591
            self displayDeviceLineFromX:xi-1 y:run toX:r y:run. "bottom"
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
        run := r - i.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2594
        self displayDeviceLineFromX:run y:yi-1 toX:run y:b.  "right"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2595
        xi := xi + 1.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2596
        yi := yi + 1
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
    ((edgeStyle == #soft or:[edgeStyle == #softWin95])
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2599
    and:[l > 1]) ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2600
        self paint:(self device blackColor) "shadowColor".
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2601
        self displayDeviceLineFromX:x y:b toX:r y:b.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2602
        self displayDeviceLineFromX:r y:y toX:r y:b
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2603
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2604
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2605
    self edgeDrawn:#all
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
    "Modified: / 24.8.1998 / 18:23:02 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2608
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2609
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2610
edgeDrawn:whichOne
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2611
    "a redefinable hook for views which like to draw
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2612
     over their edges (some checkToggles do).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2613
     Nothing done here."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2614
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2615
    "Created: 7.3.1997 / 17:59:07 / cg"
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2618
!GraphicsMedium methodsFor:'evaluating in another context'!
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
reverseDo:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2621
    "evaluate aBlock with foreground and background interchanged.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2622
     This can be reimplemented here in a faster way."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2623
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2624
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2625
	super reverseDo:aBlock.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2626
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2627
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2628
    gc reverseDo:aBlock
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2631
withBackground:fgColor do:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2632
    "evaluate aBlock with changed background."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2633
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2634
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2635
	super withBackground:fgColor do:aBlock.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2636
	^ self.
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
    gc withBackground:fgColor do:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2639
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2640
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2641
withForeground:fgColor background:bgColor do:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2642
    "evaluate aBlock with changed foreground and background."
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
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2645
	super withForeground:fgColor background:bgColor do:aBlock.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2646
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2647
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2648
    gc withForeground:fgColor background:bgColor do:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2649
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2650
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2651
withForeground:fgColor background:bgColor function:aFunction do:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2652
    "evaluate aBlock with foreground, background and function"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2653
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2654
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2655
	super withForeground:fgColor background:bgColor function:aFunction do:aBlock.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2656
	^ self.
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
    gc withForeground:fgColor background:bgColor function:aFunction do:aBlock
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
withForeground:fgColor background:bgColor mask:aMask do:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2662
    "evaluate aBlock with foreground, background and mask"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2663
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2664
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2665
	super withForeground:fgColor background:bgColor mask:aMask do:aBlock.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2666
	^ self.
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
    gc withForeground:fgColor background:bgColor mask:aMask do:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2669
!
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
withForeground:fgColor do:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2672
    "evaluate aBlock with changed foreground."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2673
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2674
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2675
	super withForeground:fgColor do:aBlock.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2676
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2677
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2678
    gc withForeground:fgColor do:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2679
!
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
withForeground:fgColor function:aFunction do:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2682
    "evaluate aBlock with changed foreground and function."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2683
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2684
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2685
	super withForeground:fgColor function:aFunction do:aBlock.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2686
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2687
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2688
    gc withForeground:fgColor function:aFunction do:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2689
!
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
xoring:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2692
    "evaluate aBlock with function xoring"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2693
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2694
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2695
	super xoring:aBlock.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2696
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2697
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2698
    gc xoring:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2699
! !
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2700
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2701
!GraphicsMedium methodsFor:'filling'!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2702
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2703
black
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2704
    "fill the receiver with black"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2705
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2706
    self fill:self blackColor
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2707
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2708
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2709
clear
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2710
    "clear the receiver with background"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2711
4068
d5b2636b048b clear -> clearView
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
  2712
    self clearView.
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2713
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2714
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2715
clearDeviceRectangleX:x y:y width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2716
    "clear a rectangular area to viewBackground -
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2717
     redefined since GraphicsMedium fills with background
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2718
     - not viewBackground as we want here."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2719
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2720
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2721
	super clearDeviceRectangleX:x y:y width:w height:h.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2722
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2723
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2724
    gc clearDeviceRectangleX:x y:y width:w height:h.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2725
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2726
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2727
clearInside
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2728
    "clear the receiver with background - ST-80 compatibility"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2729
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2730
    ^ self clear
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2731
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2732
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2733
clearRectangle:aRectangle
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2734
    "clear the rectangular area in the receiver to background"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2735
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2736
    self clearRectangleX:(aRectangle left)
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2737
		       y:(aRectangle top)
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2738
		   width:(aRectangle width)
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2739
		  height:(aRectangle height)
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2740
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2741
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2742
clearRectangleX:left y:top width:w height:h
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2743
    "clear the rectangular area in the receiver to background"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2744
741
f57edf410176 removed unused methods
Claus Gittinger <cg@exept.de>
parents: 740
diff changeset
  2745
    |oldPaint|
f57edf410176 removed unused methods
Claus Gittinger <cg@exept.de>
parents: 740
diff changeset
  2746
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2747
    oldPaint := gc paint.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2748
    gc paint:gc backgroundPaint.
6045
0e3df803d990 class: GraphicsMedium
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
  2749
    gc fillRectangleX:left y:top width:w height:h.
0e3df803d990 class: GraphicsMedium
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
  2750
    gc paint:oldPaint
741
f57edf410176 removed unused methods
Claus Gittinger <cg@exept.de>
parents: 740
diff changeset
  2751
f57edf410176 removed unused methods
Claus Gittinger <cg@exept.de>
parents: 740
diff changeset
  2752
    "Modified: 28.5.1996 / 20:14:11 / cg"
721
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
4068
d5b2636b048b clear -> clearView
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
  2755
clearView
d5b2636b048b clear -> clearView
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
  2756
    "clear the receiver with background"
d5b2636b048b clear -> clearView
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
  2757
d5b2636b048b clear -> clearView
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
  2758
    "currently need this kludge for form ..."
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2759
    gc transformation isNil ifTrue:[
5321
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
  2760
	self clearRectangleX:0 y:0 width:width height:height
4068
d5b2636b048b clear -> clearView
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
  2761
    ] ifFalse:[
5321
714fd27c7de8 *** empty log message ***
sr
parents: 4403
diff changeset
  2762
	self clearDeviceRectangleX:0 y:0 width:width height:height
4068
d5b2636b048b clear -> clearView
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
  2763
    ]
d5b2636b048b clear -> clearView
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
  2764
!
d5b2636b048b clear -> clearView
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
  2765
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2766
fill:something
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2767
    "fill the receiver with something;
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2768
     something may be a Form, Color or colorIndex"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2769
736
57e698160087 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 734
diff changeset
  2770
    |oldPaint|
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2771
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2772
    oldPaint := self paint.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2773
    self paint:something.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2774
    self fillRectangleX:0 y:0 width:width height:height.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2775
    self paint:oldPaint
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2776
741
f57edf410176 removed unused methods
Claus Gittinger <cg@exept.de>
parents: 740
diff changeset
  2777
    "Modified: 28.5.1996 / 20:13:29 / cg"
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2778
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2779
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2780
fillArc:origin radius:r from:startAngle angle:angle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2781
    "draw a filled arc around a point"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2782
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2783
    |d|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2784
    d := 2 * r.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2785
    self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2786
	fillArcX:(origin x - r)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2787
	       y:(origin y - r)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2788
	   width:d
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2789
	  height:d
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2790
	    from:startAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2791
	   angle:angle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2792
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2793
    "Modified: 8.5.1996 / 08:41:54 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2794
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2795
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2796
fillArcIn:aRectangle from:startAngle angle:angle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2797
    "draw a filled arc in a box"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2798
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2799
    self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2800
	fillArcX:(aRectangle left)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2801
	       y:(aRectangle top)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2802
	   width:(aRectangle width)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2803
	  height:(aRectangle height)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2804
	    from:startAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2805
	   angle:angle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2806
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2807
    "Created: 13.4.1996 / 20:56:03 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2808
    "Modified: 8.5.1996 / 08:42:13 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2809
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2810
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2811
fillArcOrigin:origin corner:corner from:startAngle angle:angle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2812
    "draw a filled arc in a box"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2813
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2814
    |left top right bot|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2815
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2816
    left := origin x.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2817
    top := origin y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2818
    right := corner x.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2819
    bot := corner y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2820
    self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2821
	fillArcX:left
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2822
	y:top
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2823
	width:(right - left + 1)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2824
	height:(bot - top + 1)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2825
	from:startAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2826
	angle:angle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2827
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2828
    "Created: 13.4.1996 / 20:56:56 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2829
    "Modified: 8.5.1996 / 08:42:23 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2830
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2831
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2832
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
  2833
    "draw a filled arc; apply transformation if nonNil"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2834
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2835
    <resource:#obsolete>
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2836
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2837
    self obsoleteMethodWarning:'use #fillArcX:y:width:height:from:angle:'.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2838
    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
  2839
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2840
    "Modified: 8.5.1996 / 08:47:52 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2841
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2842
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2843
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
  2844
    "draw a filled arc in a box, given startAngle and endAngle."
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
    self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2847
	fillArcX:x
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2848
	       y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2849
	   width:w
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2850
	  height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2851
	    from:startAngle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2852
	   angle:(endAngle - startAngle)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2853
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2854
    "Created: 8.5.1996 / 08:52:41 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2855
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2856
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2857
fillCircle:aPoint radius:aNumber
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2858
    "draw a filled circle around aPoint"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2859
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2860
    self fillCircleX:(aPoint x) y:(aPoint y) radius:aNumber
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2863
fillCircleIn:aRectangle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2864
    "draw a filled circle in a box"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2865
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2866
    self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2867
	fillArcX:(aRectangle left)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2868
	       y:(aRectangle top)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2869
	   width:(aRectangle width)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2870
	  height:(aRectangle height)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2871
	    from:0
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2872
	   angle:360
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2873
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2874
    "Created: 13.4.1996 / 20:57:41 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2875
    "Modified: 8.5.1996 / 08:42:38 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2876
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2877
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2878
fillCircleX:x y:y radius:r
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2879
    "draw a filled circle around x@y"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2880
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2881
    |d|
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
    d := 2 * r.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2884
    self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2885
	fillArcX:(x - r)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2886
	y:(y - r)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2887
	width:d
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2888
	height:d
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2889
	from:0
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2890
	angle:360
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2891
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2892
    "Modified: 8.5.1996 / 08:43:02 / cg"
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2895
fillRectangle:aRectangle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2896
    "fill a rectangle with current paint color"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2897
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2898
    self fillRectangleX:(aRectangle left)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2899
		      y:(aRectangle top)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2900
		  width:(aRectangle width)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2901
		 height:(aRectangle height)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2902
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2903
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2904
fillRectangleLeft:left top:top right:cornerX bottom:cornerY
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2905
    "draw a filled rectangle.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2906
     Notice: the cornerPoint itself is NOT included"
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
    self fillRectangleX:left y:top width:(cornerX - left) height:(cornerY - top)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2909
!
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
fillRectangleOrigin:origin corner:corner
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2912
    "draw a filled rectangle.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2913
     Notice: the cornerPoint itself is NOT included"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2914
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2915
    |top left|
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
    left := origin x.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2918
    top := origin y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2919
    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
  2920
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2921
    "Created: 13.4.1996 / 20:58:16 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2922
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2923
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2924
fillRectangleOrigin:origin extent:extent
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2925
    "draw a filled rectangle.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2926
     Notice: the cornerPoint itself is NOT included"
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
    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
  2929
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2930
6730
73d56dff5532 Delegate GraphicsMedium>>display/fill RoundedRectangleX:... to GraphicsContext
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6472
diff changeset
  2931
fillRoundRectangleX:x y:y width:w height:h wCorner:wCorn hCorner:hCorn
73d56dff5532 Delegate GraphicsMedium>>display/fill RoundedRectangleX:... to GraphicsContext
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6472
diff changeset
  2932
    gc fillRoundRectangleX:x y:y width:w height:h wCorner:wCorn hCorner:hCorn
73d56dff5532 Delegate GraphicsMedium>>display/fill RoundedRectangleX:... to GraphicsContext
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6472
diff changeset
  2933
73d56dff5532 Delegate GraphicsMedium>>display/fill RoundedRectangleX:... to GraphicsContext
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6472
diff changeset
  2934
    "Modified: / 07-01-2015 / 20:18:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2935
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2936
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2937
invertRectangle:aRectangle
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2938
    "invert a rectangle in the receiver"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2939
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2940
    self xoring:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2941
	self fillRectangle:aRectangle
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2942
    ]
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2943
!
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2944
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2945
white
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2946
    "fill the receiver with white"
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2947
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2948
    self fill:Color white
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2949
! !
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2950
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2951
!GraphicsMedium methodsFor:'initialization & release'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2952
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2953
close
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2954
    "same as destroy - for ST-80 compatibility"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2955
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2956
    self destroy
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2957
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2958
    "Created: 2.4.1997 / 19:31:27 / cg"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2959
!
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
destroy
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2962
    "destroy a medium - here the fc is completely destroyed"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2963
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2964
    gc notNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2965
        gc destroy.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2966
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2967
    realized := false.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2968
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2969
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2970
initGC
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2971
    "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
  2972
     really drawn, none is created.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2973
     This method is sent, when the first drawing happens"
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
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2976
	super initGC.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2977
	^ self.
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
    gc initGC
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2980
!
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2981
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2982
initialize
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2983
    super initialize.
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2984
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2985
    width := 0.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  2986
    height := 0.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  2987
    realized := false.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2988
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2989
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2990
initializeForDevice:aDevice
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2991
    "allocate a GraphicsContext for a device"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2992
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2993
    aDevice notNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2994
        gc := aDevice newGraphicsContextFor:self.
7285
d047c5fb149a Compatibility: reintroduce `device` instvar in `GraphicsMedium`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800
diff changeset
  2995
        device := aDevice.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2996
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2997
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  2998
    self initialize.
7285
d047c5fb149a Compatibility: reintroduce `device` instvar in `GraphicsMedium`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800
diff changeset
  2999
d047c5fb149a Compatibility: reintroduce `device` instvar in `GraphicsMedium`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800
diff changeset
  3000
    "Modified: / 03-04-2016 / 16:03:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3001
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3002
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3003
recreate
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3004
    "reacreate a medium after snapIn"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3005
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3006
    gc notNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3007
        gc recreate.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3008
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3009
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3010
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3011
releaseGC
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3012
    "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
  3013
     display if you know that you are done with a drawable."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3014
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3015
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3016
        super releaseGC.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3017
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3018
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3019
    gc notNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3020
        gc releaseGC.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3021
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3022
! !
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3023
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3024
!GraphicsMedium methodsFor:'misc'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3025
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3026
clippedTo:aRectangle do:aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3027
    |oldClip|
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
    oldClip := gc deviceClippingBoundsOrNil.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3030
    gc clippingBounds:aRectangle.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3031
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3032
    aBlock
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3033
        ensure:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3034
            gc deviceClippingBounds:oldClip
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3038
flush
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3039
    "send all buffered drawing to the device."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3040
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3041
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3042
	super flush.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3043
	^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3044
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3045
    gc flush
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3046
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3047
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3048
setDevice:aDevice id:aDrawbleId gcId:aGCId
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3049
    "private"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3050
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3051
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3052
        super setDevice:aDevice id:aDrawbleId gcId:aGCId.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3053
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3054
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3055
    gc notNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3056
        gc setDevice:aDevice id:aDrawbleId gcId:aGCId
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3057
    ].
7297
8061a9b76953 Issue #76: Correctly reset device in GraphicsMedium>>setDevice:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7287
diff changeset
  3058
    device := aDevice
8061a9b76953 Issue #76: Correctly reset device in GraphicsMedium>>setDevice:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7287
diff changeset
  3059
    
6472
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
setId:aDrawableId
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3063
    "private"
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 == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3066
        super setId:aDrawableId.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3067
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3068
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3069
    gc setId:aDrawableId
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3072
setPaint:fgColor on:bgColor
6731
24e7fa5e7f72 Added lost GraphicsMedium>>displayString:centeredAt:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6730
diff changeset
  3073
    "set the paint and background-paint color.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3074
     The bg-paint is used in opaque-draw operations.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3075
     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
  3076
     Used on initialization."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3077
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3078
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3079
        super setPaint:fgColor on:bgColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3080
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3081
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3082
    gc setPaint:fgColor on:bgColor
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  3083
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 721
diff changeset
  3084
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3085
sync
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3086
    "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
  3087
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3088
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3089
        super sync.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3090
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3091
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3092
    gc sync
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3095
!GraphicsMedium methodsFor:'printing & storing'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3096
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3097
storeOn:aStream
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3098
    "blocked: ascii storeString not possible (recursive - view - subviews - container)"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3099
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3100
    self shouldNotImplement.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3101
    "if proceeded from exception..."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3102
    self printOn:aStream.
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3103
! !
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3104
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3105
!GraphicsMedium methodsFor:'queries'!
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
fontAscent
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3108
    "answer the ascent of the current font on the current device"
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 == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3111
	^ super fontAscent.
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
    ^ gc fontAscent
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3116
horizontalIntegerPixelPerMillimeter
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3117
    "return the (rounded) number of pixels per millimeter"
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
    ^ self horizontalPixelPerMillimeter asInteger
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3120
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3121
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3122
horizontalPixelPerInch
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3123
    "return the number of horizontal pixels per inch of the display"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3124
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3125
    ^ self horizontalPixelPerMillimeter * 25.4
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
horizontalPixelPerMillimeter
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3129
    "return the number of pixels per millimeter (not rounded)"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3130
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3131
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3132
	^ super horizontalPixelPerMillimeter.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3133
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3134
    ^ gc horizontalPixelPerMillimeter
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3137
horizontalPixelPerMillimeter:millis
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3138
    "return the number of pixels (not rounded) for millis millimeter"
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
    ^ self horizontalPixelPerMillimeter * millis
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3143
resolution
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3144
    "return a point consisting of pixel-per-inch horizontally and vertically."
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3145
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3146
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3147
	^ super resolution.
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 resolution
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
verticalIntegerPixelPerMillimeter
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3153
    "return the (rounded) number of pixels per millimeter"
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
    ^ self verticalPixelPerMillimeter rounded
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3156
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3157
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3158
verticalPixelPerInch
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3159
    "return the number of vertical pixels per inch of the display"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3160
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3161
    ^ self verticalPixelPerMillimeter * 25.4
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
verticalPixelPerMillimeter
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3165
    "return the number of pixels per millimeter (not rounded)"
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 verticalPixelPerMillimeter.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3169
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3170
    ^ gc verticalPixelPerMillimeter
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3171
!
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
verticalPixelPerMillimeter:millis
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3174
    "return the number of pixels (not rounded) for millis millimeter"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3175
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3176
    ^ self verticalPixelPerMillimeter * millis
721
ba7861418087 renamed DisplayMedium to Graphicsmedium & changed inheritance
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3177
! !
6045
0e3df803d990 class: GraphicsMedium
Claus Gittinger <cg@exept.de>
parents: 5321
diff changeset
  3178
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3179
!GraphicsMedium methodsFor:'view creation'!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3180
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3181
createBitmapFromArray:data width:width height:height
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3182
    "create a bitmap from data and set the drawableId"
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 == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3185
        super createBitmapFromArray:data width:width height:height.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3186
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3187
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3188
    gc createBitmapFromArray:data width:width height:height
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
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3191
createPixmapWidth:w height:h depth:d
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3192
    "create a pixmap and set the drawableId"
6731
24e7fa5e7f72 Added lost GraphicsMedium>>displayString:centeredAt:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6730
diff changeset
  3193
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3194
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3195
        super createPixmapWidth:w height:h depth:d.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3196
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3197
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3198
    gc createPixmapWidth:w height:h depth:d
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3199
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3200
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3201
createRootWindow
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3202
    gc == self ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3203
        super createRootWindowFor:self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3204
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3205
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3206
    gc createRootWindowFor:self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3207
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3208
6731
24e7fa5e7f72 Added lost GraphicsMedium>>displayString:centeredAt:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6730
diff changeset
  3209
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
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3210
    "create a window and set the drawableId"
6731
24e7fa5e7f72 Added lost GraphicsMedium>>displayString:centeredAt:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6730
diff changeset
  3211
6472
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 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
  3214
        ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6247
diff changeset
  3215
    ].
6731
24e7fa5e7f72 Added lost GraphicsMedium>>displayString:centeredAt:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6730
diff changeset
  3216
    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
6472
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
7285
d047c5fb149a Compatibility: reintroduce `device` instvar in `GraphicsMedium`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800
diff changeset
  3219
!GraphicsMedium class methodsFor:'documentation'!
d047c5fb149a Compatibility: reintroduce `device` instvar in `GraphicsMedium`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800
diff changeset
  3220
d047c5fb149a Compatibility: reintroduce `device` instvar in `GraphicsMedium`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800
diff changeset
  3221
version_CVS
d047c5fb149a Compatibility: reintroduce `device` instvar in `GraphicsMedium`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800
diff changeset
  3222
    ^ '$Header: /cvs/stx/stx/libview/GraphicsMedium.st,v 1.22.2.4 2014-09-26 09:48:32 stefan Exp $'
d047c5fb149a Compatibility: reintroduce `device` instvar in `GraphicsMedium`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800
diff changeset
  3223
!
d047c5fb149a Compatibility: reintroduce `device` instvar in `GraphicsMedium`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800
diff changeset
  3224
d047c5fb149a Compatibility: reintroduce `device` instvar in `GraphicsMedium`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800
diff changeset
  3225
version_HG
d047c5fb149a Compatibility: reintroduce `device` instvar in `GraphicsMedium`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800
diff changeset
  3226
d047c5fb149a Compatibility: reintroduce `device` instvar in `GraphicsMedium`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800
diff changeset
  3227
    ^ '$Changeset: <not expanded> $'
d047c5fb149a Compatibility: reintroduce `device` instvar in `GraphicsMedium`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800
diff changeset
  3228
! !
d047c5fb149a Compatibility: reintroduce `device` instvar in `GraphicsMedium`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800
diff changeset
  3229