DisplaySurface.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Fri, 22 Apr 2016 08:34:13 +0100
branchjv
changeset 7312 e69b73023aea
parent 7311 9ca5a89f4805
child 7315 aed1314a2448
permissions -rw-r--r--
Merge
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
 COPYRIGHT (c) 1992 by Claus Gittinger
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
	      All Rights Reserved
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
 This software is furnished under a license and may be used
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 hereby transferred.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
"
3211
0669c01aa5a5 removeKey:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
    12
"{ Package: 'stx:libview' }"
0669c01aa5a5 removeKey:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
    13
6770
207aa3bfe95e class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6710
diff changeset
    14
"{ NameSpace: Smalltalk }"
207aa3bfe95e class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6710
diff changeset
    15
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
GraphicsMedium subclass:#DisplaySurface
5320
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
    17
	instanceVariableNames:'viewBackground cursor eventMask moreAttributes renderer uuid
5081
8902ec02fcea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5009
diff changeset
    18
		backed flags delegate updateRegion'
5006
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
    19
	classVariableNames:'SaveUnderFlagMask GotExposeFlagMask'
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	poolDictionaries:''
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
	category:'Graphics-Support'
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
1093
18ea3ccf5d2f category rename
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    24
!DisplaySurface class methodsFor:'documentation'!
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
copyright
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
 COPYRIGHT (c) 1992 by Claus Gittinger
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
	      All Rights Reserved
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
 This software is furnished under a license and may be used
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
 only in accordance with the terms of that license and with the
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
 inclusion of the above copyright notice.   This software may not
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
 be provided or otherwise made available to, or used by, any
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
 other person.  No title to or ownership of the software is
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
 hereby transferred.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
documentation
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
"
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
    42
    this abstract class describes stuff common to any Window on a display
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
    device. i.e. RootWindow, TopWindows, PopUps and Subwindows.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
    That is, they have a viewBackground, cursor etc. and especially events.
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
    45
    A special feature is the delegate field, which allows key- and button
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
    46
    events to be stolen from a view.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
    If the delegate is non-nil, these events will be sent to it instead.
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
    48
    So you can change a views behavior even if it was not initially designed
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
    for it. Also, controller functionality could be simulated using delegates.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
    [instance variables:]
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
    53
	viewBackground  <Color|Form|Image>      the views background
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
    55
	cursor          <Cursor>                the cursor
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
    57
	eventMask                               mask specifying the enabled
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
    58
						events.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
    60
	moreAttributes                          optional dictionary, allowing for more attributes
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
    61
						to be store there
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
    62
	    fields:
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
    63
		middleButtonMenu                a fix popup menu for the middle button.
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
    64
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
    65
		keyCommands                     not yet supported
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
    66
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
    68
	backed                                  one of #always, #whenMapped or #never
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
    69
						corresponds to X's backing store mechanism.
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
    70
						May be ignored by other devices.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
    71
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
    72
	flags                                   flag bits
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
    73
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
    74
	    saveUnder                               bit 1; 1 if saveunder store for
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
    75
							    that view is enabled
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
    76
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
    77
	    gotExpose                               bit 2; 1 if an expose/noExpose event arrived
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
    78
							    (for exposure handling after a scroll)
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
    79
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
    80
       delegate                                for event delegation
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
    [see also:]
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
    83
	DeviceWorkstation
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
    84
	WindowGroup
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
    85
	StandardSYstemView SimpleView View
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
    [author:]
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
    88
	Claus Gittinger
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
    92
!DisplaySurface class methodsFor:'initialization'!
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
    93
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
    94
initialize
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
    95
    SaveUnderFlagMask := 1.
5006
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
    96
    GotExposeFlagMask := 2.
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
    97
! !
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
    98
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
!DisplaySurface methodsFor:'accessing'!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
4050
f8ba83a13a08 new damage scheme
Claus Gittinger <cg@exept.de>
parents: 4046
diff changeset
   101
addUpdateRectangle:newRectangle
4052
5cd7eef42703 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4050
diff changeset
   102
    "return true, if the newRectangle is not already contained in the updateRegion
5cd7eef42703 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4050
diff changeset
   103
     (i.e. if it added any pixels to the region"
5cd7eef42703 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4050
diff changeset
   104
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   105
    |closure lastRect numRect lastTop lastBottom lastLeft lastRight
4391
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   106
     newTop newBottom newLeft newRight|
4050
f8ba83a13a08 new damage scheme
Claus Gittinger <cg@exept.de>
parents: 4046
diff changeset
   107
f8ba83a13a08 new damage scheme
Claus Gittinger <cg@exept.de>
parents: 4046
diff changeset
   108
    updateRegion isNil ifTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   109
	updateRegion := OrderedCollection with:newRectangle.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   110
	^ true
4050
f8ba83a13a08 new damage scheme
Claus Gittinger <cg@exept.de>
parents: 4046
diff changeset
   111
    ].
f8ba83a13a08 new damage scheme
Claus Gittinger <cg@exept.de>
parents: 4046
diff changeset
   112
    (updateRegion contains:[:oldRectangle | (newRectangle isContainedIn:oldRectangle)]) ifTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   113
	^ false.
4050
f8ba83a13a08 new damage scheme
Claus Gittinger <cg@exept.de>
parents: 4046
diff changeset
   114
    ].
4052
5cd7eef42703 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4050
diff changeset
   115
4391
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   116
    numRect := updateRegion size.
5564
3db1b17c4ac6 changed: #addUpdateRectangle:
Claus Gittinger <cg@exept.de>
parents: 5541
diff changeset
   117
    numRect > 20 ifTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   118
	closure := updateRegion
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   119
			inject:newRectangle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   120
			into:[:boundsSoFar :thisRectangle |
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   121
				boundsSoFar quickMerge:thisRectangle
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   122
			     ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   123
	updateRegion := OrderedCollection with:closure.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   124
	^ true
4050
f8ba83a13a08 new damage scheme
Claus Gittinger <cg@exept.de>
parents: 4046
diff changeset
   125
    ].
4052
5cd7eef42703 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4050
diff changeset
   126
4391
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   127
    lastRect := updateRegion at:numRect.
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   128
    lastTop := lastRect top.
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   129
    lastBottom := lastRect bottom.
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   130
    lastLeft := lastRect left.
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   131
    lastRight := lastRect right.
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   132
    newTop := newRectangle top.
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   133
    newBottom := newRectangle bottom.
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   134
    newLeft := newRectangle left.
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   135
    newRight := newRectangle right.
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   136
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   137
    lastTop = newTop ifTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   138
	lastBottom = newBottom ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   139
	    lastLeft <= newLeft ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   140
		lastRight >= newLeft ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   141
		    updateRegion at:numRect put:(lastRect copy right:newRight).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   142
		    ^ false "/ true
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   143
		]
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   144
	    ]
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   145
	].
4391
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   146
    ].
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   147
    lastLeft = newLeft ifTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   148
	lastRight = newRight ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   149
	    lastTop <= newTop ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   150
		lastBottom >= newTop ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   151
		    updateRegion at:numRect put:(lastRect copy bottom:newBottom).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   152
		    ^ false "/ true
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   153
		]
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   154
	    ]
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   155
	].
4391
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   156
    ].
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   157
4050
f8ba83a13a08 new damage scheme
Claus Gittinger <cg@exept.de>
parents: 4046
diff changeset
   158
    updateRegion add:newRectangle.
f8ba83a13a08 new damage scheme
Claus Gittinger <cg@exept.de>
parents: 4046
diff changeset
   159
    ^ true
f8ba83a13a08 new damage scheme
Claus Gittinger <cg@exept.de>
parents: 4046
diff changeset
   160
!
f8ba83a13a08 new damage scheme
Claus Gittinger <cg@exept.de>
parents: 4046
diff changeset
   161
3699
53cecc2349b2 added basicViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3685
diff changeset
   162
basicViewBackground:something
53cecc2349b2 added basicViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3685
diff changeset
   163
    "set the viewBackground to something, a color, image or form.
53cecc2349b2 added basicViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3685
diff changeset
   164
     The viewBackground is the color or pattern with which exposed
53cecc2349b2 added basicViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3685
diff changeset
   165
     regions are filled - do not confuse this with the drawing background
53cecc2349b2 added basicViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3685
diff changeset
   166
     color, which is used with opaque drawing."
53cecc2349b2 added basicViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3685
diff changeset
   167
53cecc2349b2 added basicViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3685
diff changeset
   168
    viewBackground ~~ something ifTrue:[
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   169
	viewBackground := something.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   170
	self drawableId notNil ifTrue:[
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   171
	    self setViewBackground
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   172
	]
3699
53cecc2349b2 added basicViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3685
diff changeset
   173
    ]
53cecc2349b2 added basicViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3685
diff changeset
   174
!
53cecc2349b2 added basicViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3685
diff changeset
   175
4043
588a3b635b8a controller method;
Claus Gittinger <cg@exept.de>
parents: 4041
diff changeset
   176
controller
588a3b635b8a controller method;
Claus Gittinger <cg@exept.de>
parents: 4041
diff changeset
   177
    "return nil - I have no controller"
588a3b635b8a controller method;
Claus Gittinger <cg@exept.de>
parents: 4041
diff changeset
   178
588a3b635b8a controller method;
Claus Gittinger <cg@exept.de>
parents: 4041
diff changeset
   179
    ^ nil
588a3b635b8a controller method;
Claus Gittinger <cg@exept.de>
parents: 4041
diff changeset
   180
!
588a3b635b8a controller method;
Claus Gittinger <cg@exept.de>
parents: 4041
diff changeset
   181
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
depth
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
    "return the depth in pixels of the view.
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   184
     Notice, that this is currently the devices depth,
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
     but support for mixed depth views is being prepared.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
     (especially useful on SGI, with 24bit view)"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
    ^ device depth
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
insideColor:aColor
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
    "set the views background color - ST-80 compatibility"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
    self viewBackground:aColor.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
    self background:aColor
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
2142
200b8ac20fa5 return devices standard keyboardMap as default when asked.
Claus Gittinger <cg@exept.de>
parents: 2129
diff changeset
   198
keyboardMap
200b8ac20fa5 return devices standard keyboardMap as default when asked.
Claus Gittinger <cg@exept.de>
parents: 2129
diff changeset
   199
    "by default, use my devices standard mapping.
200b8ac20fa5 return devices standard keyboardMap as default when asked.
Claus Gittinger <cg@exept.de>
parents: 2129
diff changeset
   200
     However, subclasses may redefine this, to return their own
200b8ac20fa5 return devices standard keyboardMap as default when asked.
Claus Gittinger <cg@exept.de>
parents: 2129
diff changeset
   201
     keyboard map (for example a terminalView may want treat CTRL-C as regular key)"
200b8ac20fa5 return devices standard keyboardMap as default when asked.
Claus Gittinger <cg@exept.de>
parents: 2129
diff changeset
   202
200b8ac20fa5 return devices standard keyboardMap as default when asked.
Claus Gittinger <cg@exept.de>
parents: 2129
diff changeset
   203
    ^ device keyboardMap
200b8ac20fa5 return devices standard keyboardMap as default when asked.
Claus Gittinger <cg@exept.de>
parents: 2129
diff changeset
   204
!
200b8ac20fa5 return devices standard keyboardMap as default when asked.
Claus Gittinger <cg@exept.de>
parents: 2129
diff changeset
   205
5541
355263416a66 preps for renderer
Claus Gittinger <cg@exept.de>
parents: 5458
diff changeset
   206
renderer
355263416a66 preps for renderer
Claus Gittinger <cg@exept.de>
parents: 5458
diff changeset
   207
    "warning: this is experimental and not yet implemented"
355263416a66 preps for renderer
Claus Gittinger <cg@exept.de>
parents: 5458
diff changeset
   208
    ^ renderer
355263416a66 preps for renderer
Claus Gittinger <cg@exept.de>
parents: 5458
diff changeset
   209
!
355263416a66 preps for renderer
Claus Gittinger <cg@exept.de>
parents: 5458
diff changeset
   210
355263416a66 preps for renderer
Claus Gittinger <cg@exept.de>
parents: 5458
diff changeset
   211
renderer:something
355263416a66 preps for renderer
Claus Gittinger <cg@exept.de>
parents: 5458
diff changeset
   212
    "warning: this is experimental and not yet implemented"
355263416a66 preps for renderer
Claus Gittinger <cg@exept.de>
parents: 5458
diff changeset
   213
    renderer := something.
355263416a66 preps for renderer
Claus Gittinger <cg@exept.de>
parents: 5458
diff changeset
   214
!
355263416a66 preps for renderer
Claus Gittinger <cg@exept.de>
parents: 5458
diff changeset
   215
4221
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
   216
sensor
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   217
    "I can only return a SynchronousWindowSensor,
4221
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
   218
     since I do not have a window group"
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
   219
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
   220
    ^ SynchronousWindowSensor new
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
   221
!
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
   222
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   223
setViewBackground
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   224
    "install the viewBackground for the receiver on the device"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   225
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   226
    |id devBgPixmap bgPixmap w h colorMap
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
   227
     pixmapDepth deviceDepth defBG|
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   228
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   229
    self drawableId notNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   230
	viewBackground isColor ifTrue:[
7287
1e2a3258dd8a Replace all `self graphicsDevice` with `device`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7286
diff changeset
   231
	    viewBackground := viewBackground onDevice:device.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   232
	    id := viewBackground colorId.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   233
	    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   234
	     a real color (i.e. one supported by the device) ?
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   235
	    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   236
	    id notNil ifTrue:[
7287
1e2a3258dd8a Replace all `self graphicsDevice` with `device`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7286
diff changeset
   237
		device setWindowBackground:id in:self drawableId.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   238
		^ self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   239
	    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   240
	    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   241
	     no, a dithered one - must have a dither-pattern
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   242
	     (which is ready for the device, since viewBackground
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   243
	      is already assigned to the device)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   244
	    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   245
	    bgPixmap := viewBackground ditherForm.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   246
	] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   247
	    viewBackground notNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   248
		viewBackground isViewBackground ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   249
		    ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   250
		].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   251
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   252
		"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   253
		 assume, it can convert itself to a form
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   254
		"
7287
1e2a3258dd8a Replace all `self graphicsDevice` with `device`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7286
diff changeset
   255
		bgPixmap := viewBackground asFormOn:device.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   256
		bgPixmap isNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   257
		    "/ assume it knows how to draw itself
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   258
		    ^ self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   259
		].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   260
	    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   261
	].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   262
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   263
	"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   264
	 must now have:
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   265
	 a dithered color or bitmap or pixmap
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   266
	"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   267
	bgPixmap isNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   268
	    'DisplaySurface [warning]: background not convertable - ignored' errorPrintCR.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   269
	    ^ self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   270
	].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   271
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   272
	"/ if the device does not support background pixmaps,
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   273
	"/ set the backgroundColor to the default background.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   274
	"/ this will avoid flicker in win32 systems,
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   275
	"/ since that background is drawn directly in the
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   276
	"/ devices expose event handling.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   277
	"/ (in contrast, the pixmap filling is done by the
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   278
	"/ window itself in its expose event handler)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   279
7287
1e2a3258dd8a Replace all `self graphicsDevice` with `device`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7286
diff changeset
   280
	(device supportsViewBackgroundPixmap:bgPixmap) ifFalse:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   281
	    defBG := View defaultViewBackgroundColor.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   282
	    defBG isColor ifTrue:[
7287
1e2a3258dd8a Replace all `self graphicsDevice` with `device`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7286
diff changeset
   283
		defBG := defBG onDevice:device.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   284
		id := defBG colorId.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   285
		id notNil ifTrue:[
7287
1e2a3258dd8a Replace all `self graphicsDevice` with `device`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7286
diff changeset
   286
		    device setWindowBackground:id in:self drawableId.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   287
		].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   288
	    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   289
	    ^ self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   290
	].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   291
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   292
	w := bgPixmap width.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   293
	h := bgPixmap height.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   294
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   295
	deviceDepth := self depth.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   296
	pixmapDepth := bgPixmap depth.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   297
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   298
	(pixmapDepth ~~ deviceDepth) ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   299
	    (pixmapDepth ~~ 1) ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   300
		'DisplaySurface [warning]: Bad dither depth (must be one or devices depth)' errorPrintCR.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   301
		^ self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   302
	    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   303
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   304
	    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   305
	     convert it into a deep form
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   306
	    "
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   307
	    colorMap := bgPixmap colorMap.
7287
1e2a3258dd8a Replace all `self graphicsDevice` with `device`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7286
diff changeset
   308
	    devBgPixmap := Form width:w height:h depth:deviceDepth onDevice:device.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   309
	    devBgPixmap isNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   310
		'DisplaySurface [warning]: could not create a device form for viewBackground' infoPrintCR.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   311
		^ self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   312
	    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   313
	    devBgPixmap paint:(colorMap at:1).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   314
	    devBgPixmap fillRectangleX:0 y:0 width:w height:h.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   315
	    devBgPixmap foreground:(colorMap at:2) background:(colorMap at:1).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   316
	    devBgPixmap copyPlaneFrom:bgPixmap x:0 y:0 toX:0 y:0 width:w height:h.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   317
	    bgPixmap := devBgPixmap.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   318
	] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   319
	    (pixmapDepth == 1) ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   320
		"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   321
		 although depth matches,
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   322
		 values in the dither are to be interpreted via the ditherForms
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   323
		 colormap, which is not always the same as blackpixel/whitepixel ...
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   324
		"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   325
		colorMap := bgPixmap colorMap.
7287
1e2a3258dd8a Replace all `self graphicsDevice` with `device`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7286
diff changeset
   326
		(colorMap at:1) colorId == device whitepixel ifTrue:[
1e2a3258dd8a Replace all `self graphicsDevice` with `device`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7286
diff changeset
   327
		    (colorMap at:2) colorId == device blackpixel ifTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   328
			"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   329
			 ok, can use it
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   330
			"
7287
1e2a3258dd8a Replace all `self graphicsDevice` with `device`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7286
diff changeset
   331
			device setWindowBackgroundPixmap:(bgPixmap id) in:self drawableId.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   332
			^ self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   333
		    ]
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   334
		].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   335
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   336
		"
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   337
		 no, must invert it
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   338
		"
7287
1e2a3258dd8a Replace all `self graphicsDevice` with `device`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7286
diff changeset
   339
		devBgPixmap := Form width:w height:h depth:deviceDepth onDevice:device.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   340
		devBgPixmap paint:(colorMap at:2) on:(colorMap at:1).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   341
		devBgPixmap copyPlaneFrom:bgPixmap x:0 y:0 toX:0 y:0 width:w height:h.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   342
		bgPixmap := devBgPixmap.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   343
	    ]
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   344
	].
7287
1e2a3258dd8a Replace all `self graphicsDevice` with `device`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7286
diff changeset
   345
	device setWindowBackgroundPixmap:(bgPixmap id) in:self drawableId.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   346
    ]
1134
520b75563476 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1133
diff changeset
   347
5686
03868cc7d82a changed: #setViewBackground
Claus Gittinger <cg@exept.de>
parents: 5565
diff changeset
   348
    "Modified: / 23-01-2011 / 01:44:38 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   349
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   350
4041
7f4ec0d373f3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   351
updateRegion
7f4ec0d373f3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   352
    ^ updateRegion
7f4ec0d373f3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   353
!
7f4ec0d373f3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   354
7f4ec0d373f3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   355
updateRegion:something
7f4ec0d373f3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   356
    updateRegion := something.
7f4ec0d373f3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   357
!
7f4ec0d373f3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   358
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   359
viewBackground
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   360
    "return the viewBackground"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   361
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   362
    ^ viewBackground
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   363
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   364
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   365
viewBackground:something
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   366
    "set the viewBackground to something, a color, image or form.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   367
     The viewBackground is the color or pattern with which exposed
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   368
     regions are filled - do not confuse this with the drawing background
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   369
     color, which is used with opaque drawing."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   370
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   371
    viewBackground ~~ something ifTrue:[
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   372
	self basicViewBackground:something
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   373
    ]
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   374
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   375
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   376
viewBackgroundAndClear:something
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   377
    "set the viewBackground to something, a color, image or form.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   378
     and clear the View.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   379
     The viewBackground is the color or pattern with which exposed
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   380
     regions are filled - do not confuse this with the drawing background
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   381
     color, which is used with opaque drawing."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   382
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   383
    self viewBackground:something.
4070
efd0ffb52d43 clear -> clearView
Claus Gittinger <cg@exept.de>
parents: 4052
diff changeset
   384
    self clearView.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   385
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   386
    "Created: 27.4.1996 / 14:09:08 / cg"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   387
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   388
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   389
viewGravity
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   390
    "return the views gravity"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   391
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   392
    ^ #NorthWest
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   393
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   394
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   395
viewOrigin
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   396
    "0@0 here, since by default we cannot be scrolled"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   397
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   398
    ^ 0 @ 0
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   399
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   400
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   401
widget
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   402
    "ST-80 compatibility"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   403
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   404
    ^ self
4221
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
   405
!
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
   406
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   407
windowClass:classString name:nameString
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   408
    gc windowClass:classString name:nameString.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   409
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   410
4221
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
   411
windowGroup
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
   412
    "return nil - I have no windowGroup"
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
   413
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
   414
    ^ nil
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   415
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   416
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   417
windowName:aString
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   418
    gc windowName:aString.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   419
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   420
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   421
!DisplaySurface methodsFor:'accessing-cursor'!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   422
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   423
cursor
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   424
    "return the views cursor"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   425
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   426
    ^ cursor
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   427
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   428
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   429
cursor:aCursor
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   430
    "set the views cursor. This cursor will be automatically displayed whenever
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   431
     the mouse-pointer enters the receiver.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   432
     Cursors are typically set at view creation time and left as installed."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   433
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   434
    self cursor:aCursor now:true
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   435
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   436
    "
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   437
     |v|
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   438
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   439
     v := View new.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   440
     v cursor:(Cursor wait).
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   441
     v open.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   442
     [v shown] whileFalse:[Processor yield].
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   443
     [v shown] whileTrue:[
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   444
	(Delay forSeconds:1) wait.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   445
	v cursor:(Cursor normal).
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   446
	(Delay forSeconds:1) wait.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   447
	v cursor:(Cursor wait).
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   448
     ]
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   449
    "
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   450
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   451
    "Modified: 14.12.1995 / 21:28:14 / cg"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   452
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   453
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   454
cursor:aCursor now:showImmediately
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   455
    "set the views cursor. This cursor will be automatically displayed whenever
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   456
     the mouse-pointer enters the receiver.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   457
     Cursors are typically set at view creation time and left as installed."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   458
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   459
    aCursor notNil ifTrue:[
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
   460
	(aCursor ~~ cursor) ifTrue:[
6819
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
   461
	    "/ aCursor = Cursor wait ifTrue:[
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
   462
	    "/     Transcript showCR:'==========================='.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
   463
	    "/     thisContext fullPrintAllOn:Transcript.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
   464
	    "/ ].
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
   465
	    cursor := aCursor.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   466
	    self drawableId notNil ifTrue:[
1960
aa9ef6e21f15 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1907
diff changeset
   467
		self setCursor.
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
   468
		(showImmediately and:[realized]) ifTrue:[
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
   469
		    "flush, to make cursor immediately visible"
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   470
		    self flush
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
   471
		]
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
   472
	    ]
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
   473
	]
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   474
    ]
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   475
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   476
    "
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   477
     |v|
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   478
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   479
     v := View new.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   480
     v cursor:(Cursor wait).
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   481
     v open.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   482
     [v shown] whileFalse:[Processor yield].
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   483
     [v shown] whileTrue:[
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
   484
	(Delay forSeconds:1) wait.
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
   485
	v cursor:(Cursor normal).
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
   486
	(Delay forSeconds:1) wait.
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
   487
	v cursor:(Cursor wait).
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   488
     ]
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   489
    "
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   490
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   491
    "Created: 14.12.1995 / 21:28:00 / cg"
1494
4faf11deec70 cursor #on: is obsoleted by #onDevice:.
Claus Gittinger <cg@exept.de>
parents: 1481
diff changeset
   492
    "Modified: 28.3.1997 / 13:47:58 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   493
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   494
1960
aa9ef6e21f15 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1907
diff changeset
   495
setCursor
aa9ef6e21f15 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1907
diff changeset
   496
    |id|
aa9ef6e21f15 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1907
diff changeset
   497
6226
cdb753921735 class: DisplaySurface
Stefan Vogel <sv@exept.de>
parents: 6094
diff changeset
   498
    cursor isNil ifTrue:[ ^ self].
7268
88e9d56a0dd1 device access
Claus Gittinger <cg@exept.de>
parents: 7067
diff changeset
   499
    cursor := cursor onDevice:device.
6226
cdb753921735 class: DisplaySurface
Stefan Vogel <sv@exept.de>
parents: 6094
diff changeset
   500
    cursor isNil ifTrue:[ ^ self].
cdb753921735 class: DisplaySurface
Stefan Vogel <sv@exept.de>
parents: 6094
diff changeset
   501
cdb753921735 class: DisplaySurface
Stefan Vogel <sv@exept.de>
parents: 6094
diff changeset
   502
    id := cursor id.
cdb753921735 class: DisplaySurface
Stefan Vogel <sv@exept.de>
parents: 6094
diff changeset
   503
    id isNil ifTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   504
	'DisplaySurface [warning]: nil cursorId ignored; shape=' errorPrint.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   505
	cursor shape errorPrintCR.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   506
	^ self.
6226
cdb753921735 class: DisplaySurface
Stefan Vogel <sv@exept.de>
parents: 6094
diff changeset
   507
    ].
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   508
    gc setCursorId:id .
1960
aa9ef6e21f15 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1907
diff changeset
   509
!
aa9ef6e21f15 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1907
diff changeset
   510
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   511
withCursor:aCursor do:aBlock
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   512
    "evaluate aBlock showing aCursor until ready; then restore the old cursor
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   513
     and return the value as returned by aBlock.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   514
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   515
     Notice, that this method only changes the cursor for a SINGLE (sub-)view.
1337
00e2cfdfd7bc commentary
Claus Gittinger <cg@exept.de>
parents: 1332
diff changeset
   516
     Most applications want to have the cursor changed in all of its views.
00e2cfdfd7bc commentary
Claus Gittinger <cg@exept.de>
parents: 1332
diff changeset
   517
     Use 'aView windowGroup withCursor:do:' or 'aView topView withCursor:do:'
00e2cfdfd7bc commentary
Claus Gittinger <cg@exept.de>
parents: 1332
diff changeset
   518
     to acomplish this."
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   519
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   520
    |savedCursor|
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   521
1388
ba20e718d36f withCursor:do: - better behavior if change has no effect
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
   522
    cursor == aCursor ifTrue:[
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   523
	^ aBlock value
1388
ba20e718d36f withCursor:do: - better behavior if change has no effect
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
   524
    ].
ba20e718d36f withCursor:do: - better behavior if change has no effect
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
   525
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   526
    savedCursor := cursor.
3674
2d18a78198af getKeyBoardFocus
Stefan Vogel <sv@exept.de>
parents: 3639
diff changeset
   527
    self cursor:aCursor now:true.
2d18a78198af getKeyBoardFocus
Stefan Vogel <sv@exept.de>
parents: 3639
diff changeset
   528
    ^ aBlock ensure:[self cursor:savedCursor now:true]
1337
00e2cfdfd7bc commentary
Claus Gittinger <cg@exept.de>
parents: 1332
diff changeset
   529
1388
ba20e718d36f withCursor:do: - better behavior if change has no effect
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
   530
    "Modified: 27.2.1997 / 17:20:43 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   531
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   532
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   533
withExecuteCursorDo:aBlock
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   534
    "evaluate aBlock while showing an execute cursor in all my views.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   535
     Return the value as returned by aBlock."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   536
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   537
    ^ self withCursor:(Cursor execute) do:aBlock
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   538
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   539
    "Created: 10.1.1996 / 13:53:03 / cg"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   540
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   541
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   542
withReadCursorDo:aBlock
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   543
    "evaluate aBlock while showing a readCursor in all my views.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   544
     Return the value as returned by aBlock."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   545
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   546
    ^ self withCursor:(Cursor read) do:aBlock
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   547
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   548
    "Modified: 14.12.1995 / 20:57:40 / cg"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   549
    "Created: 10.1.1996 / 13:52:52 / cg"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   550
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   551
5565
a6553baf9dab added: #withVisibleCursor:do:
Stefan Vogel <sv@exept.de>
parents: 5564
diff changeset
   552
withVisibleCursor:aCursor do:aBlock
a6553baf9dab added: #withVisibleCursor:do:
Stefan Vogel <sv@exept.de>
parents: 5564
diff changeset
   553
    "evaluate aBlock, showing a aCursor.
a6553baf9dab added: #withVisibleCursor:do:
Stefan Vogel <sv@exept.de>
parents: 5564
diff changeset
   554
     Return the value of aBlock.
6815
03d7b8152454 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6805
diff changeset
   555
     Ensure, that the cursor is visible for the user for a minimal amount of time
03d7b8152454 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6805
diff changeset
   556
     (even if the computation would be too quick for a cursor to be visible,
03d7b8152454 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6805
diff changeset
   557
      show the execute cursor for some time as a feedback)."
5565
a6553baf9dab added: #withVisibleCursor:do:
Stefan Vogel <sv@exept.de>
parents: 5564
diff changeset
   558
a6553baf9dab added: #withVisibleCursor:do:
Stefan Vogel <sv@exept.de>
parents: 5564
diff changeset
   559
    |ret|
a6553baf9dab added: #withVisibleCursor:do:
Stefan Vogel <sv@exept.de>
parents: 5564
diff changeset
   560
5783
92696252bc47 changed: #withVisibleCursor:do:
Claus Gittinger <cg@exept.de>
parents: 5773
diff changeset
   561
    cursor == aCursor ifTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   562
	^ aBlock value
5783
92696252bc47 changed: #withVisibleCursor:do:
Claus Gittinger <cg@exept.de>
parents: 5773
diff changeset
   563
    ].
92696252bc47 changed: #withVisibleCursor:do:
Claus Gittinger <cg@exept.de>
parents: 5773
diff changeset
   564
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   565
    self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   566
	withCursor:aCursor do:[
6819
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
   567
	    |timeToExecute remainingShowTime|
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
   568
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
   569
	    timeToExecute := Time millisecondsToRun:[ ret := aBlock value].
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
   570
	    remainingShowTime := UserPreferences current waitCursorVisibleTime - timeToExecute.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
   571
	    remainingShowTime > 0 ifTrue:[
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
   572
		Delay waitForMilliseconds:remainingShowTime.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   573
	    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   574
	].
5565
a6553baf9dab added: #withVisibleCursor:do:
Stefan Vogel <sv@exept.de>
parents: 5564
diff changeset
   575
    ^ ret.
5783
92696252bc47 changed: #withVisibleCursor:do:
Claus Gittinger <cg@exept.de>
parents: 5773
diff changeset
   576
92696252bc47 changed: #withVisibleCursor:do:
Claus Gittinger <cg@exept.de>
parents: 5773
diff changeset
   577
    "Modified (comment): / 12-09-2011 / 12:14:29 / cg"
5565
a6553baf9dab added: #withVisibleCursor:do:
Stefan Vogel <sv@exept.de>
parents: 5564
diff changeset
   578
!
a6553baf9dab added: #withVisibleCursor:do:
Stefan Vogel <sv@exept.de>
parents: 5564
diff changeset
   579
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   580
withWaitCursorDo:aBlock
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   581
    "evaluate aBlock while showing a waitCursor in all my views.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   582
     Return the value as returned by aBlock."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   583
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   584
    ^ self withCursor:(Cursor wait) do:aBlock
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   585
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   586
    "Created: 10.1.1996 / 13:51:08 / cg"
5923
f597b6554c31 added: #withWriteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
   587
!
f597b6554c31 added: #withWriteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
   588
f597b6554c31 added: #withWriteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
   589
withWriteCursorDo:aBlock
f597b6554c31 added: #withWriteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
   590
    "evaluate aBlock while showing a writeCursor in all my views.
f597b6554c31 added: #withWriteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
   591
     Return the value as returned by aBlock."
f597b6554c31 added: #withWriteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
   592
f597b6554c31 added: #withWriteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
   593
    ^ self withCursor:(Cursor write) do:aBlock
f597b6554c31 added: #withWriteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
   594
f597b6554c31 added: #withWriteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
   595
    "Modified: / 14-12-1995 / 20:57:40 / cg"
f597b6554c31 added: #withWriteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
   596
    "Created: / 27-07-2012 / 09:43:08 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   597
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   598
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   599
!DisplaySurface methodsFor:'accessing-hierarchy'!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   600
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   601
delegate
6396
1bd2ea6f2662 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6372
diff changeset
   602
    "return the delegate - that's the one getting keyboard and button events.
1bd2ea6f2662 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6372
diff changeset
   603
     See dispatchEvent:... method"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   604
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   605
    ^ delegate
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   606
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   607
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   608
delegate:someOne
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   609
    "set the delegate - keyboard- and button events will be forwarded to
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   610
     that object if it is interested in them.
6396
1bd2ea6f2662 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6372
diff changeset
   611
     See the dispatchEvent... method."
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   612
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   613
    delegate := someOne
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   614
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   615
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   616
superView
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   617
    "return the superView - nil here"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   618
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   619
    ^ nil
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   620
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   621
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   622
topComponent
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   623
    "return the topView - that the one with no superview"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   624
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   625
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   626
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   627
    "Created: 9.5.1996 / 01:39:43 / cg"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   628
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   629
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   630
topView
6642
f91982ecc2b6 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6558
diff changeset
   631
    "return the topView - that's the one with no superview"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   632
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   633
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   634
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   635
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   636
!DisplaySurface methodsFor:'accessing-limits'!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   637
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   638
maxExtent
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   639
    "return the views maximum extent - this is nil here.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   640
     Only standardSystemViews support this."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   641
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   642
    ^ nil
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   643
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   644
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   645
maxExtent:extent
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   646
    "set the views maximum extent - ignored here.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   647
     Only standardSystemViews support this."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   648
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   649
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   650
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   651
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   652
minExtent
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   653
    "return the views minimum extent - this is nil here.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   654
     Only standardSystemViews support this."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   655
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   656
    ^ nil
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   657
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   658
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   659
minExtent:extent
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   660
    "set the views minimum extent - ignored here.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   661
     Only standardSystemViews support this."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   662
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   663
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   664
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   665
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   666
!DisplaySurface methodsFor:'accessing-misc'!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   667
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   668
backingStore:how
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   669
    "turn on/off backingStore (saving my pixels)
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   670
     how may true/false, but also #always, #whenMapped or #never."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   671
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   672
    how ~~ backed ifTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   673
	backed := how.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   674
	super backingStore:how.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   675
    ]
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   676
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   677
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   678
eventMask
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   679
    "return a (numeric) mask of allowed events -
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   680
     this is X-specific and will be removed / replaced by symbolic values)"
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   681
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   682
    ^ eventMask
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   683
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   684
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   685
eventMask:aMask
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   686
    "set a (numeric) mask of allowed events -
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   687
     this is X-specific and will be removed / replaced by symbolic values)"
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   688
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   689
    eventMask := aMask
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   690
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   691
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   692
getKeyboardFocus
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   693
    "tell the Display to assign keyboard focus to the receiver"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   694
3674
2d18a78198af getKeyBoardFocus
Stefan Vogel <sv@exept.de>
parents: 3639
diff changeset
   695
    self shown ifTrue:[
7287
1e2a3258dd8a Replace all `self graphicsDevice` with `device`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7286
diff changeset
   696
	device setInputFocusTo:self drawableId.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   697
    ].
2512
f7c7f082e65b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2509
diff changeset
   698
f7c7f082e65b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2509
diff changeset
   699
    "Modified: / 15.3.1999 / 08:25:10 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   700
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   701
781
6a02db3a260a renamed #inputOnly to #isInputOnly
Claus Gittinger <cg@exept.de>
parents: 734
diff changeset
   702
isInputOnly
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   703
    "return true, if the receiver is an input only view - that is:
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   704
     the view will realize as a transparent view, into which you cannot
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   705
     draw, but get events as usual. Thich can be used to catch events away from
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   706
     others, which where never meant to work in such a setup.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   707
     (for example, if you want to manipulate views in some DrawTool-like manner).
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   708
     This uses a special X feature, which might not be supported in the near future
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   709
     or on other plattforms."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   710
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   711
    ^ false
781
6a02db3a260a renamed #inputOnly to #isInputOnly
Claus Gittinger <cg@exept.de>
parents: 734
diff changeset
   712
6a02db3a260a renamed #inputOnly to #isInputOnly
Claus Gittinger <cg@exept.de>
parents: 734
diff changeset
   713
    "Created: 1.6.1996 / 13:21:51 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   714
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   715
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   716
preferredDepth
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   717
    "return a non nil integer, if a specific depth is wanted in this view.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   718
     Return nil if we do not care (i.e. the displays default is wanted).
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   719
     This is experimental and may change/vanish - do not use it."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   720
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   721
    ^ nil
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   722
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   723
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   724
preferredVisual
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   725
    "return a non nil id, if a specific visual is wanted in this view.
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   726
     Return nil if we do not care (i.e. the displays default is wanted).
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   727
     This is experimental and may change/vanish - do not use it."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   728
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   729
    ^ nil
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   730
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   731
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
   732
saveUnder
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
   733
    "return the saveUnder flag"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
   734
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
   735
    ^ flags bitTest:SaveUnderFlagMask
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
   736
!
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
   737
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   738
saveUnder:aBoolean
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   739
    "turn on/off saveUnder (saving pixels under myself)
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   740
     - used for temporary views (i.e. PopUps and ModalBoxes)"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   741
5006
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   742
    aBoolean ifTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   743
	flags := flags bitOr:SaveUnderFlagMask.
5006
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   744
    ] ifFalse:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   745
	flags := flags bitClear:SaveUnderFlagMask.
5006
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   746
    ].
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   747
    gc saveUnder:aBoolean.
3859
a11d876ebc26 Fix #showAtPointer to take care of window manager title bars.
Stefan Vogel <sv@exept.de>
parents: 3856
diff changeset
   748
!
a11d876ebc26 Fix #showAtPointer to take care of window manager title bars.
Stefan Vogel <sv@exept.de>
parents: 3856
diff changeset
   749
a11d876ebc26 Fix #showAtPointer to take care of window manager title bars.
Stefan Vogel <sv@exept.de>
parents: 3856
diff changeset
   750
setPointerPosition:aRelativePoint
a11d876ebc26 Fix #showAtPointer to take care of window manager title bars.
Stefan Vogel <sv@exept.de>
parents: 3856
diff changeset
   751
    "set the pointer to aRelativePoint relative to the views origin"
a11d876ebc26 Fix #showAtPointer to take care of window manager title bars.
Stefan Vogel <sv@exept.de>
parents: 3856
diff changeset
   752
7287
1e2a3258dd8a Replace all `self graphicsDevice` with `device`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7286
diff changeset
   753
    device setPointerPosition:aRelativePoint in:self drawableId.
3859
a11d876ebc26 Fix #showAtPointer to take care of window manager title bars.
Stefan Vogel <sv@exept.de>
parents: 3856
diff changeset
   754
a11d876ebc26 Fix #showAtPointer to take care of window manager title bars.
Stefan Vogel <sv@exept.de>
parents: 3856
diff changeset
   755
    "
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   756
	Transcript setPointerPosition:Transcript extent // 2.
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   757
	Screen current rootView setPointerPosition:100@100.
3859
a11d876ebc26 Fix #showAtPointer to take care of window manager title bars.
Stefan Vogel <sv@exept.de>
parents: 3856
diff changeset
   758
    "
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   759
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   760
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   761
!DisplaySurface methodsFor:'accessing-names'!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   762
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   763
icon
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   764
    "return the views icon - this is nil here.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   765
     Only standardSystemViews support labels and icons."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   766
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   767
    ^ nil
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   768
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   769
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   770
icon:aBitmap
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   771
    "set the views icon - ignored here.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   772
     Only standardSystemViews support labels and icons."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   773
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   774
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   775
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   776
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   777
iconLabel
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   778
    "return the views icon label - this is nil here.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   779
     Only standardSystemViews support labels and icons."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   780
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   781
    ^ nil
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   782
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   783
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   784
iconLabel:aLabel
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   785
    "set the views icon label - ignored here.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   786
     Only standardSystemViews support labels and icons."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   787
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   788
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   789
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   790
1481
335881213805 added #isTopView query
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
   791
iconMask
335881213805 added #isTopView query
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
   792
    "return the views iconMask - this is nil here.
335881213805 added #isTopView query
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
   793
     Only standardSystemViews may support labels and icons."
335881213805 added #isTopView query
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
   794
335881213805 added #isTopView query
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
   795
    ^ nil
335881213805 added #isTopView query
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
   796
!
335881213805 added #isTopView query
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
   797
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   798
iconView
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   799
    "return the views iconView - this is nil here.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   800
     Only standardSystemViews support labels and icons."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   801
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   802
    ^ nil
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   803
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   804
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   805
iconView:aView
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   806
    "set the views icon view - ignored here.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   807
     Only standardSystemViews support labels and icons."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   808
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   809
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   810
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   811
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   812
label
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   813
    "return the views label - this is nil here.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   814
     Only standardSystemViews support labels and icons."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   815
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   816
    ^ nil
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   817
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   818
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   819
label:aLabel
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   820
    "set the views label - ignored here.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   821
     Only standardSystemViews support labels and icons."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   822
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   823
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   824
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   825
5006
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   826
!DisplaySurface methodsFor:'accessing-private'!
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   827
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   828
clearGotExposeFlag
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   829
    "internal; used to wait for an expose-event after a scroll operation"
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   830
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   831
    flags := flags bitClear:GotExposeFlagMask.
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   832
!
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   833
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   834
getAttribute:key
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   835
    moreAttributes isNil ifTrue:[ ^ nil].
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   836
    ^ moreAttributes at:key ifAbsent:nil.
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   837
!
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   838
5006
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   839
gotExpose
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   840
    "internal; used to wait for an expose-event after a scroll operation"
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   841
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   842
    ^ flags bitTest:GotExposeFlagMask.
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   843
!
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   844
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   845
setAttribute:key to:newValue
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   846
    newValue isNil ifTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   847
	moreAttributes notNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   848
	    moreAttributes removeKey:key ifAbsent:[].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   849
	    moreAttributes := moreAttributes asNilIfEmpty
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   850
	]
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   851
    ] ifFalse:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   852
	moreAttributes isNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   853
	    moreAttributes := IdentityDictionary new.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   854
	].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   855
	moreAttributes at:key put:newValue.
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   856
    ].
5081
8902ec02fcea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5009
diff changeset
   857
!
8902ec02fcea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5009
diff changeset
   858
8902ec02fcea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5009
diff changeset
   859
setGotExposeFlag
8902ec02fcea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5009
diff changeset
   860
    "internal; used to wait for an expose-event after a scroll operation"
8902ec02fcea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5009
diff changeset
   861
8902ec02fcea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5009
diff changeset
   862
    flags := flags bitOr:GotExposeFlagMask.
5006
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   863
! !
4969
f4adf8354162 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4890
diff changeset
   864
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   865
!DisplaySurface methodsFor:'button menus'!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   866
5773
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
   867
getMiddleButtonMenu
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
   868
    "return the menu associated with the middle mouse button.
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
   869
     This is a possibly obsolete hook for views which do not define their own menu,
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
   870
     but are configured from the outside. Nowadays, widgets provide their own menu
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
   871
     or are configured using a menuHolder."
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   872
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   873
    ^ self getAttribute:#middleButtonMenu
5773
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
   874
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
   875
    "Created: / 07-07-2011 / 18:16:21 / cg"
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
   876
!
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
   877
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
   878
middleButtonMenu
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
   879
    "return the menu associated with the middle mouse button.
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
   880
     Here, return a hooked on menu, but usually redefined to provide a widget-specific
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
   881
     menu."
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
   882
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
   883
    ^ self getMiddleButtonMenu
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
   884
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
   885
    "Modified (comment): / 07-07-2011 / 18:18:28 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   886
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   887
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   888
middleButtonMenu:aMenu
5773
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
   889
    "associate aMenu with the middle mouse button.
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
   890
     This is a possibly obsolete hook for views which do not define their own menu,
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
   891
     but are configured from the outside. Nowadays, widgets provide their own menu
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
   892
     or are configured using a menuHolder."
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   893
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   894
    |oldMenu|
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   895
5773
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
   896
    (oldMenu := self getMiddleButtonMenu) notNil ifTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   897
	oldMenu isArray ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   898
	    oldMenu destroy
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
   899
	]
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   900
    ].
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   901
    self setMiddleButtonMenu:aMenu
5740
21319eb4135f changed: #middleButtonMenu:
Claus Gittinger <cg@exept.de>
parents: 5686
diff changeset
   902
5773
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
   903
    "Modified: / 07-07-2011 / 18:18:00 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   904
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   905
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   906
setMiddleButtonMenu:aMenu
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   907
    "associate aMenu with the middle mouse button.
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   908
     Do not destroy the old menu if any"
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   909
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   910
    self setAttribute:#middleButtonMenu to:aMenu
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   911
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   912
4283
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   913
!DisplaySurface methodsFor:'clipboard'!
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   914
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   915
getClipboardObject
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   916
    "return the object selection
4283
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   917
     - either the local one, or the displays clipBoard buffer."
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   918
7287
1e2a3258dd8a Replace all `self graphicsDevice` with `device`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7286
diff changeset
   919
    ^ device getClipboardObjectFor:self drawableId.
4283
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   920
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   921
    "Modified: 13.2.1997 / 13:18:50 / cg"
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   922
!
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   923
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   924
getClipboardText
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   925
    "return the copyBuffers contents
4283
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   926
     - either the local one, or the displays clipBoard buffer."
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   927
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   928
    ^ self getClipboardText:#clipboard
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   929
!
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   930
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   931
getClipboardText:selectionBufferSymbol
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   932
    "return the text selection - either the local one, or one of the displays
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   933
     clipBoard buffers determined by selectionBufferSymbol, which should be one of:
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   934
	#clipboard
4283
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   935
     or:
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   936
	#selection.
4283
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   937
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   938
     Return aString or nil if there is no selection"
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   939
7287
1e2a3258dd8a Replace all `self graphicsDevice` with `device`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7286
diff changeset
   940
    ^ device getClipboardText:selectionBufferSymbol for:self drawableId.
4283
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   941
!
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   942
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   943
getSelection
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   944
    <resource: #obsolete>
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   945
    self obsoleteMethodWarning:'use #getClipboardObject'.
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   946
    ^ self getClipboardObject
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   947
!
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   948
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   949
getTextSelection
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   950
    "return the copyBuffers contents
4283
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   951
     - either the local one, or the displays clipBoard buffer."
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   952
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   953
    <resource: #obsolete>
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   954
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   955
    self obsoleteMethodWarning:'use #getClipboardText'.
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   956
    ^ self getClipboardText
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   957
!
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   958
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   959
getTextSelection:selectionBufferSymbol
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   960
    "return the text selection - either the local one, or one of the displays
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   961
     clipBoard buffers determined by selectionBufferSymbol, which should be one of:
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   962
	#clipboard
4283
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   963
     or:
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   964
	#selection.
4283
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   965
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   966
     Return aString or nil if there is no selection"
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   967
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   968
    <resource: #obsolete>
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   969
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   970
    self obsoleteMethodWarning:'#use getClipboardText:'.
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   971
    ^ self getClipboardText:selectionBufferSymbol
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   972
!
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   973
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   974
setClipboardObject:something
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   975
    "set the object selection - both the local one, and tell the display
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   976
     that we have changed it (i.e. place it into the clipBoard)."
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   977
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   978
    device setClipboardObject:something ownerView:self.
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   979
!
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   980
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   981
setClipboardText:something
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   982
    "set the text selection - both the local one, and tell the display
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   983
     that we have changed it (i.e. place it into the clipBoard)."
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   984
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   985
    device setClipboardText:something ownerView:self
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   986
!
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   987
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   988
setSelection:something
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   989
    "set the object selection - both the local one, and tell the display
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   990
     that we have changed it (i.e. place it into the clipBoard)."
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   991
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   992
    <resource: #obsolete>
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   993
4283
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   994
    self obsoleteMethodWarning:'use setClipboardObject:'.
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   995
    device setClipboardObject:something ownerView:self.
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   996
!
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   997
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   998
setTextSelection:something
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
   999
    "set the text selection - both the local one, and tell the display
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1000
     that we have changed it (i.e. place it into the clipBoard)."
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1001
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1002
    <resource: #obsolete>
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1003
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1004
    self obsoleteMethodWarning:'use setClipboardText:'.
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1005
    device setClipboardText:something ownerView:self
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1006
! !
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1007
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1008
!DisplaySurface methodsFor:'drawing'!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1009
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1010
clearDeviceRectangleX:x y:y width:w height:h
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1011
    "clear a rectangular area to viewBackground -
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1012
     redefined since GraphicsMedium fills with background
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1013
     - not viewBackground as we want here."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1014
7020
a32d62ad31cd #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6959
diff changeset
  1015
    |oldPaint org patternOffsetX patternOffsetY|
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1016
7302
bc00d96fd11f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 7268
diff changeset
  1017
    viewBackground isNil ifTrue:[^ self]. "/ how can this happen?
bc00d96fd11f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 7268
diff changeset
  1018
2341
a7dc2588d6dc clearRectangle with pattern (viewBackgroundPixmap) for win95
Claus Gittinger <cg@exept.de>
parents: 2300
diff changeset
  1019
    viewBackground isColor ifFalse:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1020
	viewBackground isViewBackground ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1021
	    oldPaint := self paint.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1022
	    self paint:self background.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1023
	    self fillDeviceRectangleX:x y:y width:w height:h.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1024
	    self paint:oldPaint.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1025
	    viewBackground fillRectangleX:x y:y width:w height:h in:self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1026
	    ^ self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1027
	].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1028
7027
35ce7924300f #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  1029
        (self device supportsMaskedDrawingWith:viewBackground) ifFalse:[
7020
a32d62ad31cd #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6959
diff changeset
  1030
            "/ hand-fill: the device cannot draw with a bitmap pattern underneath.
a32d62ad31cd #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6959
diff changeset
  1031
            self fillDeviceRectangleWithViewBackgroundX:x y:y width:w height:h.
a32d62ad31cd #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6959
diff changeset
  1032
            ^ self.
a32d62ad31cd #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6959
diff changeset
  1033
        ].
a32d62ad31cd #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6959
diff changeset
  1034
        
7036
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7033 7020
diff changeset
  1035
        self gcId notNil ifTrue:[
5458
f7eb9d9c7e8d comment/format in:5 methods
Claus Gittinger <cg@exept.de>
parents: 5344
diff changeset
  1036
            org := self viewOrigin.
7020
a32d62ad31cd #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6959
diff changeset
  1037
            patternOffsetX := (org x rounded \\ viewBackground width).
a32d62ad31cd #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6959
diff changeset
  1038
            patternOffsetY := (org y rounded \\ viewBackground height).
a32d62ad31cd #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6959
diff changeset
  1039
            (patternOffsetX ~= 0 or:[patternOffsetY ~= 0]) ifTrue:[
7027
35ce7924300f #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  1040
                (self device supportsMaskedDrawingWithOffset:viewBackground) ifFalse:[
7020
a32d62ad31cd #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6959
diff changeset
  1041
                    "/ hand-fill: the device cannot draw with a shifted bitmap pattern underneath.
a32d62ad31cd #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6959
diff changeset
  1042
                    self fillDeviceRectangleWithViewBackgroundX:x y:y width:w height:h.
a32d62ad31cd #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6959
diff changeset
  1043
                    ^ self.
a32d62ad31cd #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6959
diff changeset
  1044
                ].
a32d62ad31cd #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6959
diff changeset
  1045
            ].    
7027
35ce7924300f #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  1046
            self device setMaskOriginX:patternOffsetX negated y:patternOffsetY negated in:self gcId
5458
f7eb9d9c7e8d comment/format in:5 methods
Claus Gittinger <cg@exept.de>
parents: 5344
diff changeset
  1047
        ].
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1048
    ].
2341
a7dc2588d6dc clearRectangle with pattern (viewBackgroundPixmap) for win95
Claus Gittinger <cg@exept.de>
parents: 2300
diff changeset
  1049
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1050
    "
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1051
     fill in device coordinates - not logical coordinates
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1052
    "
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1053
    oldPaint := self paint.
2341
a7dc2588d6dc clearRectangle with pattern (viewBackgroundPixmap) for win95
Claus Gittinger <cg@exept.de>
parents: 2300
diff changeset
  1054
    self paint:viewBackground.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1055
    self fillDeviceRectangleX:x y:y width:w height:h "with:viewBackground".
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1056
    self paint:oldPaint
2341
a7dc2588d6dc clearRectangle with pattern (viewBackgroundPixmap) for win95
Claus Gittinger <cg@exept.de>
parents: 2300
diff changeset
  1057
2632
e18b55db3e1e replaced supportdMaskedDrawing by a method which gets the
Claus Gittinger <cg@exept.de>
parents: 2525
diff changeset
  1058
    "Modified: / 4.5.1999 / 13:00:34 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1059
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1060
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1061
clearRectangleX:x y:y width:w height:h
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1062
    "clear a rectangular area to viewBackground -
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1063
     redefined since GraphicsMedium fills with background
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1064
     - not viewBackground as we want here."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1065
7071
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7036 7067
diff changeset
  1066
    |pX pY nW nH rect transformation |
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7036 7067
diff changeset
  1067
    transformation := gc transformation.
2341
a7dc2588d6dc clearRectangle with pattern (viewBackgroundPixmap) for win95
Claus Gittinger <cg@exept.de>
parents: 2300
diff changeset
  1068
    transformation notNil ifTrue:[
7067
d34e0407b6a6 #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 7065
diff changeset
  1069
        rect := transformation transformRectangle:(Rectangle left:x top:y width:w height:h).
d34e0407b6a6 #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 7065
diff changeset
  1070
        pX := rect left.
d34e0407b6a6 #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 7065
diff changeset
  1071
        pY := rect top.
d34e0407b6a6 #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 7065
diff changeset
  1072
        nW := rect width.
d34e0407b6a6 #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 7065
diff changeset
  1073
        nH := rect height.
2341
a7dc2588d6dc clearRectangle with pattern (viewBackgroundPixmap) for win95
Claus Gittinger <cg@exept.de>
parents: 2300
diff changeset
  1074
    ] ifFalse:[
6692
939b2c5d4041 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6642
diff changeset
  1075
        pX := x.
939b2c5d4041 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6642
diff changeset
  1076
        pY := y.
939b2c5d4041 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6642
diff changeset
  1077
        nW := w.
939b2c5d4041 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6642
diff changeset
  1078
        nH := h.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1079
    ].
2341
a7dc2588d6dc clearRectangle with pattern (viewBackgroundPixmap) for win95
Claus Gittinger <cg@exept.de>
parents: 2300
diff changeset
  1080
2393
247e70febb7d oops - clearDeviceRectangle may not be invoked with floats.
Claus Gittinger <cg@exept.de>
parents: 2356
diff changeset
  1081
    pX := pX rounded.
247e70febb7d oops - clearDeviceRectangle may not be invoked with floats.
Claus Gittinger <cg@exept.de>
parents: 2356
diff changeset
  1082
    pY := pY rounded.
7067
d34e0407b6a6 #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 7065
diff changeset
  1083
    nW := nW ceiling.
d34e0407b6a6 #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 7065
diff changeset
  1084
    nH := nH ceiling.
6692
939b2c5d4041 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6642
diff changeset
  1085
939b2c5d4041 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6642
diff changeset
  1086
    ^ self clearDeviceRectangleX:pX y:pY width:nW height:nH.
2341
a7dc2588d6dc clearRectangle with pattern (viewBackgroundPixmap) for win95
Claus Gittinger <cg@exept.de>
parents: 2300
diff changeset
  1087
2393
247e70febb7d oops - clearDeviceRectangle may not be invoked with floats.
Claus Gittinger <cg@exept.de>
parents: 2356
diff changeset
  1088
    "Modified: / 30.10.1998 / 15:00:37 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1089
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1090
2660
c6a707b38caa generalized pattern filling (for w95)
Claus Gittinger <cg@exept.de>
parents: 2658
diff changeset
  1091
fillDeviceRectangleWithPattern:aPixmap x:xIn y:yIn width:wIn height:hIn patternOffset:pattOffs
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1092
    <resource: #obsolete>
2660
c6a707b38caa generalized pattern filling (for w95)
Claus Gittinger <cg@exept.de>
parents: 2658
diff changeset
  1093
    "fill a rectangular area with some pattern.
5458
f7eb9d9c7e8d comment/format in:5 methods
Claus Gittinger <cg@exept.de>
parents: 5344
diff changeset
  1094
     A helper for devices which do not support pixmap drawing (i.e. win95).
f7eb9d9c7e8d comment/format in:5 methods
Claus Gittinger <cg@exept.de>
parents: 5344
diff changeset
  1095
     This is never invoked with X11 or Win-NT/XP/Vista systems.
2660
c6a707b38caa generalized pattern filling (for w95)
Claus Gittinger <cg@exept.de>
parents: 2658
diff changeset
  1096
     Caller must ensure that aPixmap is really a form"
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1097
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1098
    |r b
2656
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1099
     pW "{ Class: SmallInteger }"
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1100
     pH "{ Class: SmallInteger }"
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1101
     xR0
2656
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1102
     xR "{ Class: SmallInteger }"
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1103
     yR "{ Class: SmallInteger }"
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1104
     xE "{ Class: SmallInteger }"
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1105
     yE "{ Class: SmallInteger }"
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1106
     oldFg oldBg oldClip x y w h fg bg clrMap
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1107
     offsX "{ Class: SmallInteger }"
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1108
     offsY "{ Class: SmallInteger }"
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1109
     oX "{ Class: SmallInteger }"
2660
c6a707b38caa generalized pattern filling (for w95)
Claus Gittinger <cg@exept.de>
parents: 2658
diff changeset
  1110
     oY "{ Class: SmallInteger }"|
2398
bc2e3e470efe fixed background filling in case of huge rectangle argument.
Claus Gittinger <cg@exept.de>
parents: 2393
diff changeset
  1111
2640
033824608132 oops - care for viewOrigin when manually drawing viewBackground
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1112
    x := xIn.
033824608132 oops - care for viewOrigin when manually drawing viewBackground
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1113
    y := yIn.
033824608132 oops - care for viewOrigin when manually drawing viewBackground
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1114
    w := wIn.
033824608132 oops - care for viewOrigin when manually drawing viewBackground
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1115
    h := hIn.
033824608132 oops - care for viewOrigin when manually drawing viewBackground
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1116
033824608132 oops - care for viewOrigin when manually drawing viewBackground
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1117
    x := x max:0.
033824608132 oops - care for viewOrigin when manually drawing viewBackground
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1118
    y := y max:0.
2654
f919ca08f450 fixed viewBackground filling for w95.
Claus Gittinger <cg@exept.de>
parents: 2640
diff changeset
  1119
    r := (xIn + w - 1) min:(width - 1).
f919ca08f450 fixed viewBackground filling for w95.
Claus Gittinger <cg@exept.de>
parents: 2640
diff changeset
  1120
    b := (yIn + h - 1) min:(height - 1).
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1121
2660
c6a707b38caa generalized pattern filling (for w95)
Claus Gittinger <cg@exept.de>
parents: 2658
diff changeset
  1122
    pW := aPixmap width.
c6a707b38caa generalized pattern filling (for w95)
Claus Gittinger <cg@exept.de>
parents: 2658
diff changeset
  1123
    pH := aPixmap height.
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1124
7065
b1a3035edf0d #BUGFIX
Stefan Vogel <sv@exept.de>
parents: 7020
diff changeset
  1125
    oldClip := self deviceClippingRectangle.
2398
bc2e3e470efe fixed background filling in case of huge rectangle argument.
Claus Gittinger <cg@exept.de>
parents: 2393
diff changeset
  1126
    oldClip notNil ifTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1127
	x := x max:oldClip left.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1128
	y := y max:oldClip top.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1129
	r := r min:oldClip right.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1130
	b := b min:oldClip bottom.
2398
bc2e3e470efe fixed background filling in case of huge rectangle argument.
Claus Gittinger <cg@exept.de>
parents: 2393
diff changeset
  1131
    ].
bc2e3e470efe fixed background filling in case of huge rectangle argument.
Claus Gittinger <cg@exept.de>
parents: 2393
diff changeset
  1132
    w := r-x+1.
bc2e3e470efe fixed background filling in case of huge rectangle argument.
Claus Gittinger <cg@exept.de>
parents: 2393
diff changeset
  1133
    h := b-y+1.
bc2e3e470efe fixed background filling in case of huge rectangle argument.
Claus Gittinger <cg@exept.de>
parents: 2393
diff changeset
  1134
2656
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1135
    yR := (y // pH) * pH.
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1136
    yE := y+h.
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1137
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1138
    yR >= yE ifTrue:[^ self].
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1139
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1140
    xR0 := (x // pW) * pW.
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1141
    xE := x+w.
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1142
6770
207aa3bfe95e class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6710
diff changeset
  1143
    xR0 >= xE ifTrue:[^ self].
2656
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1144
2660
c6a707b38caa generalized pattern filling (for w95)
Claus Gittinger <cg@exept.de>
parents: 2658
diff changeset
  1145
    aPixmap depth == 1 ifTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1146
	oldFg := self foreground.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1147
	oldBg := self background.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1148
	(clrMap := aPixmap colorMap) notNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1149
	    bg := clrMap at:1.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1150
	    fg := clrMap at:2.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1151
	] ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1152
	    bg := Color white.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1153
	    fg := Color black.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1154
	].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1155
	self foreground:fg background:bg.
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1156
    ].
7067
d34e0407b6a6 #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 7065
diff changeset
  1157
    self deviceClippingRectangle:(Rectangle left:x top:y width:w height:h).
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1158
5458
f7eb9d9c7e8d comment/format in:5 methods
Claus Gittinger <cg@exept.de>
parents: 5344
diff changeset
  1159
    offsX := (xR0 + pattOffs x) \\ pW.
f7eb9d9c7e8d comment/format in:5 methods
Claus Gittinger <cg@exept.de>
parents: 5344
diff changeset
  1160
    offsY := (yR + pattOffs y) \\ pH.
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1161
2656
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1162
    oY := offsY.
2632
e18b55db3e1e replaced supportdMaskedDrawing by a method which gets the
Claus Gittinger <cg@exept.de>
parents: 2525
diff changeset
  1163
    [yR < yE] whileTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1164
	xR := xR0.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1165
	oX := offsX.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1166
	[xR < xE] whileTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1167
	    self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1168
		copyFrom:aPixmap
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1169
		x:oX y:oY
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1170
		toX:xR y:yR
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1171
		width:(pW - oX) height:(pH - oY)
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1172
		async:true.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1173
	    xR := xR + pW - oX.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1174
	    oX := 0.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1175
	].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1176
	yR := yR + pH - oY.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1177
	oY := 0.
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1178
    ].
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1179
2656
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1180
    oldFg notNil ifTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1181
	self foreground:oldFg background:oldBg.
2656
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1182
    ].
2342
48d850a7844c care for clip when doing manual fills (win95)
Claus Gittinger <cg@exept.de>
parents: 2341
diff changeset
  1183
    self deviceClippingRectangle:oldClip.
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1184
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1185
    "Created: / 6.9.1998 / 14:00:50 / cg"
2640
033824608132 oops - care for viewOrigin when manually drawing viewBackground
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1186
    "Modified: / 4.5.1999 / 20:38:07 / ps"
033824608132 oops - care for viewOrigin when manually drawing viewBackground
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1187
    "Modified: / 4.5.1999 / 20:40:12 / cg"
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1188
!
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1189
2660
c6a707b38caa generalized pattern filling (for w95)
Claus Gittinger <cg@exept.de>
parents: 2658
diff changeset
  1190
fillDeviceRectangleWithViewBackgroundX:xIn y:yIn width:wIn height:hIn
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1191
    <resource: #obsolete>
2654
f919ca08f450 fixed viewBackground filling for w95.
Claus Gittinger <cg@exept.de>
parents: 2640
diff changeset
  1192
    "fill a rectangular area with the viewBackground.
5458
f7eb9d9c7e8d comment/format in:5 methods
Claus Gittinger <cg@exept.de>
parents: 5344
diff changeset
  1193
     A helper for devices which do not support background pixmaps (i.e. win95 screens).
f7eb9d9c7e8d comment/format in:5 methods
Claus Gittinger <cg@exept.de>
parents: 5344
diff changeset
  1194
     This is never invoked with X11 or Win-NT/XP/Vista systems.
2654
f919ca08f450 fixed viewBackground filling for w95.
Claus Gittinger <cg@exept.de>
parents: 2640
diff changeset
  1195
     Caller must ensure that the viewBackground is really a form"
f919ca08f450 fixed viewBackground filling for w95.
Claus Gittinger <cg@exept.de>
parents: 2640
diff changeset
  1196
2660
c6a707b38caa generalized pattern filling (for w95)
Claus Gittinger <cg@exept.de>
parents: 2658
diff changeset
  1197
    self
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1198
	fillDeviceRectangleWithPattern:viewBackground
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1199
	x:xIn y:yIn width:wIn height:hIn
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1200
	patternOffset:self viewOrigin
2660
c6a707b38caa generalized pattern filling (for w95)
Claus Gittinger <cg@exept.de>
parents: 2658
diff changeset
  1201
!
c6a707b38caa generalized pattern filling (for w95)
Claus Gittinger <cg@exept.de>
parents: 2658
diff changeset
  1202
c6a707b38caa generalized pattern filling (for w95)
Claus Gittinger <cg@exept.de>
parents: 2658
diff changeset
  1203
fillRectangleWithPattern:aPixmap x:x y:y width:w height:h patternOffset:pattOffs
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1204
    <resource: #obsolete>
2660
c6a707b38caa generalized pattern filling (for w95)
Claus Gittinger <cg@exept.de>
parents: 2658
diff changeset
  1205
    "fill a rectangular area with aPixmap.
5458
f7eb9d9c7e8d comment/format in:5 methods
Claus Gittinger <cg@exept.de>
parents: 5344
diff changeset
  1206
     A helper for devices which do not support pixmap filling (i.e. win95 screens).
f7eb9d9c7e8d comment/format in:5 methods
Claus Gittinger <cg@exept.de>
parents: 5344
diff changeset
  1207
     This is never invoked with X11 or Win-NT/XP/Vista systems.
2660
c6a707b38caa generalized pattern filling (for w95)
Claus Gittinger <cg@exept.de>
parents: 2658
diff changeset
  1208
     Caller must ensure that the aPixmap is really a form"
c6a707b38caa generalized pattern filling (for w95)
Claus Gittinger <cg@exept.de>
parents: 2658
diff changeset
  1209
6819
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  1210
    |pX pY nW nH pO pC currentTransformation|
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1211
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1212
    currentTransformation := gc transformation.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1213
    currentTransformation notNil ifTrue:[
6819
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  1214
	pO := currentTransformation transformPoint:x@y.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  1215
	pC := currentTransformation transformPoint:(x+w-1)@(y+h-1).
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  1216
	pX := pO x.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  1217
	pY := pO y.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  1218
	nW := pC x - pX + 1.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  1219
	nH := pC y - pY + 1.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  1220
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1221
	nW < 0 ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1222
	      nW := nW abs.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1223
	      pX := pX - nW.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1224
	].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1225
	nH < 0 ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1226
	      nH := nH abs.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1227
	      pY := pY - nH.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1228
	].
2654
f919ca08f450 fixed viewBackground filling for w95.
Claus Gittinger <cg@exept.de>
parents: 2640
diff changeset
  1229
    ] ifFalse:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1230
	pX := x.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1231
	pY := y.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1232
	nW := w.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1233
	nH := h.
2654
f919ca08f450 fixed viewBackground filling for w95.
Claus Gittinger <cg@exept.de>
parents: 2640
diff changeset
  1234
    ].
f919ca08f450 fixed viewBackground filling for w95.
Claus Gittinger <cg@exept.de>
parents: 2640
diff changeset
  1235
    pX := pX rounded.
f919ca08f450 fixed viewBackground filling for w95.
Claus Gittinger <cg@exept.de>
parents: 2640
diff changeset
  1236
    pY := pY rounded.
f919ca08f450 fixed viewBackground filling for w95.
Claus Gittinger <cg@exept.de>
parents: 2640
diff changeset
  1237
    nW := nW rounded.
f919ca08f450 fixed viewBackground filling for w95.
Claus Gittinger <cg@exept.de>
parents: 2640
diff changeset
  1238
    nH := nH rounded.
f919ca08f450 fixed viewBackground filling for w95.
Claus Gittinger <cg@exept.de>
parents: 2640
diff changeset
  1239
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1240
    self
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1241
	fillDeviceRectangleWithPattern:aPixmap
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1242
	x:pX y:pY width:nW height:nH
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1243
	patternOffset:pattOffs
2654
f919ca08f450 fixed viewBackground filling for w95.
Claus Gittinger <cg@exept.de>
parents: 2640
diff changeset
  1244
f919ca08f450 fixed viewBackground filling for w95.
Claus Gittinger <cg@exept.de>
parents: 2640
diff changeset
  1245
    "Modified: 4.6.1996 / 17:58:49 / cg"
f919ca08f450 fixed viewBackground filling for w95.
Claus Gittinger <cg@exept.de>
parents: 2640
diff changeset
  1246
!
f919ca08f450 fixed viewBackground filling for w95.
Claus Gittinger <cg@exept.de>
parents: 2640
diff changeset
  1247
2660
c6a707b38caa generalized pattern filling (for w95)
Claus Gittinger <cg@exept.de>
parents: 2658
diff changeset
  1248
fillRectangleWithViewBackgroundX:x y:y width:w height:h
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1249
    <resource: #obsolete>
2660
c6a707b38caa generalized pattern filling (for w95)
Claus Gittinger <cg@exept.de>
parents: 2658
diff changeset
  1250
    "fill a rectangular area with the viewBackground.
5458
f7eb9d9c7e8d comment/format in:5 methods
Claus Gittinger <cg@exept.de>
parents: 5344
diff changeset
  1251
     A helper for devices which do not support background pixmaps (i.e. win95 screens).
f7eb9d9c7e8d comment/format in:5 methods
Claus Gittinger <cg@exept.de>
parents: 5344
diff changeset
  1252
     This is never invoked with X11 or Win-NT/XP/Vista systems.
2660
c6a707b38caa generalized pattern filling (for w95)
Claus Gittinger <cg@exept.de>
parents: 2658
diff changeset
  1253
     Caller must ensure that the viewBackground is really a form"
c6a707b38caa generalized pattern filling (for w95)
Claus Gittinger <cg@exept.de>
parents: 2658
diff changeset
  1254
c6a707b38caa generalized pattern filling (for w95)
Claus Gittinger <cg@exept.de>
parents: 2658
diff changeset
  1255
    self
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1256
	fillRectangleWithPattern:viewBackground
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1257
	x:x y:y width:w height:h
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1258
	patternOffset:self viewOrigin
2660
c6a707b38caa generalized pattern filling (for w95)
Claus Gittinger <cg@exept.de>
parents: 2658
diff changeset
  1259
!
c6a707b38caa generalized pattern filling (for w95)
Claus Gittinger <cg@exept.de>
parents: 2658
diff changeset
  1260
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1261
redraw
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1262
    "nothing done here"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1263
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1264
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1265
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1266
!DisplaySurface methodsFor:'enable/disable events'!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1267
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1268
compressMotionEvents:aBoolean
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1269
    "enable/disable motion event compression
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1270
     (i.e. replacing all motion events by the last one).
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1271
     Compression makes almost always sense, except when
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1272
     doing things like freehand drawing"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1273
4221
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
  1274
    |windowGroup|
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
  1275
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
  1276
    windowGroup := self windowGroup.
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
  1277
    windowGroup notNil ifTrue:[
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1278
	windowGroup sensor compressMotionEvents:aBoolean.
4221
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
  1279
    ].
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1280
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1281
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1282
disableButtonEvents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1283
    "disable all button events"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1284
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1285
    self disableEvent:#buttonPress; disableEvent:#buttonRelease
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1286
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1287
    "Modified: 29.4.1996 / 11:09:25 / cg"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1288
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1289
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1290
disableButtonMotionEvents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1291
    "disable button motion-while-button-is-pressed events"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1292
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1293
    self disableEvent:#buttonMotion
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1294
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1295
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1296
disableButtonPressEvents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1297
    "disable button press events"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1298
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1299
    self disableEvent:#buttonPress
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1300
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1301
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1302
disableButtonReleaseEvents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1303
    "disable button release events"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1304
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1305
    self disableEvent:#buttonRelease
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1306
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1307
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1308
disableEnterLeaveEvents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1309
    "disable both mouse-pointer enter and leave events"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1310
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1311
    self disableEvent:#enter; disableEvent:#leave
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1312
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1313
    "Modified: 29.4.1996 / 11:09:37 / cg"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1314
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1315
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1316
disableEvent:anEventSymbol
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1317
    "disable an event -
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1318
     this is a private (internal) method not to be used externally.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1319
     for a list of allowed event symbols see Workstation class"
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1320
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1321
    eventMask := eventMask bitAnd:(device eventMaskFor:anEventSymbol) bitInvert.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1322
    self drawableId notNil ifTrue:[
7287
1e2a3258dd8a Replace all `self graphicsDevice` with `device`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7286
diff changeset
  1323
	device setEventMask:eventMask in:self drawableId
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1324
    ]
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1325
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1326
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1327
disableMotionEvents
1332
624bcfb69025 commentary
ca
parents: 1317
diff changeset
  1328
    "disable mouse-pointer motion events"
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1329
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1330
    self disableEvent:#pointerMotion
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1331
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1332
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1333
enableButtonEvents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1334
    "enable both mouse button press and release events.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1335
     These are enabled by default anyway."
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1336
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1337
    self enableEvent:#buttonPress; enableEvent:#buttonRelease
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1338
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1339
    "Modified: 29.4.1996 / 11:09:46 / cg"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1340
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1341
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1342
enableButtonMotionEvents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1343
    "enable mouse-pointer motion-while-button-is-pressed events.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1344
     These are enabled by default anyway."
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1345
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1346
    self enableEvent:#buttonMotion
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1347
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1348
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1349
enableButtonPressEvents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1350
    "enable mouse button press events.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1351
     These are enabled by default anyway."
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1352
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1353
    self enableEvent:#buttonPress
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1354
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1355
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1356
enableButtonReleaseEvents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1357
    "enable mouse button release events.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1358
     These are enabled by default anyway."
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1359
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1360
    self enableEvent:#buttonRelease
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1361
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1362
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1363
enableEnterEvents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1364
    "enable mouse-pointer enter events"
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1365
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1366
    self enableEvent:#enter
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1367
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1368
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1369
enableEnterLeaveEvents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1370
    "enable both mouse-pointer enter and leave events"
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1371
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1372
    self enableEvent:#enter; enableEvent:#leave
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1373
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1374
    "Modified: 29.4.1996 / 11:09:55 / cg"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1375
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1376
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1377
enableEvent:anEventSymbol
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1378
    "enable an event -
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1379
     this is a private (internal) method not to be used externally.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1380
     for a list of allowed event symbols see Workstation class"
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1381
4136
e34ededb967f care for nil eventmask (early access ?)
werner
parents: 4120
diff changeset
  1382
    eventMask := (eventMask ? 0) bitOr:(device eventMaskFor:anEventSymbol).
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1383
    self drawableId notNil ifTrue:[
7287
1e2a3258dd8a Replace all `self graphicsDevice` with `device`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7286
diff changeset
  1384
	device setEventMask:eventMask in:self drawableId
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1385
    ]
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1386
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1387
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1388
enableFocusEvents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1389
    "enable keyboard focus change events"
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1390
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1391
    self enableEvent:#focusChange
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1392
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1393
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1394
enableKeyEvents
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1395
    "this is a compatibility leftover -
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1396
     starting with 2.10.3, keyPress is always enabled to allow
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1397
     ^C processing."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1398
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1399
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1400
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1401
enableKeyPressEvents
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1402
    "this is a compatibility leftover -
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1403
     starting with 2.10.3, keyPress is always enabled to allow
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1404
     ^C processing."
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1405
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1406
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1407
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1408
enableKeyReleaseEvents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1409
    "enable key release events"
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1410
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1411
    self enableEvent:#keyRelease
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1412
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1413
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1414
enableLeaveEvents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1415
    "enable mouse-pointer leave events"
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1416
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1417
    self enableEvent:#leave
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1418
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1419
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1420
enableMotionEvents
4453
79fcf4ad63c7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4436
diff changeset
  1421
    "enable mouse-pointer motion events (those without a pressed button)"
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1422
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1423
    self enableEvent:#pointerMotion
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1424
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1425
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1426
!DisplaySurface methodsFor:'event dispatching'!
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1427
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1428
dispatchEvent:event
2962
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2868
diff changeset
  1429
    "dispatch an event"
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2868
diff changeset
  1430
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1431
    ^ self
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  1432
	dispatchEvent:event
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  1433
	withFocusOn:nil
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  1434
	delegate:true
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1435
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1436
    "Modified: / 20.5.1998 / 23:01:15 / cg"
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1437
!
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1438
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1439
dispatchEvent:type arguments:arguments
2962
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2868
diff changeset
  1440
    "dispatch an event"
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2868
diff changeset
  1441
3094
7ef0f53288bc always use the new #dispatchEvent methods
ca
parents: 3070
diff changeset
  1442
    "/ XXXX: TO BE ELIMINATED
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1443
    ^ self
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  1444
	dispatchEvent:nil
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1445
	type:type
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1446
	arguments:arguments
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1447
	withFocusOn:nil
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  1448
	delegate:true
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1449
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1450
    "Modified: / 20.5.1998 / 22:50:31 / cg"
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1451
!
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1452
3094
7ef0f53288bc always use the new #dispatchEvent methods
ca
parents: 3070
diff changeset
  1453
dispatchEvent:ev type:type arguments:argArray withFocusOn:focusView delegate:doDelegate
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1454
    "dispatch the event represented by type and arguments either to my delegate,
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1455
     or to my controller (which may be myself, if I implement the controller functionality myself).
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1456
     If focusView is nonNil, and it is a keyboard event, it is forwarded to this
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1457
     view (but not if there was a delegate in the first place).
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1458
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1459
     If doDelegate is true, keyboard and button events are forwarded to a
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1460
     delegate object (if non-nil). DoDelegate may be passed as true, to
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1461
     handle events which are already delegated.
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1462
     If there is a delegate, only messages which are understood by it are
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1463
     forwarded. Also, the delegate is asked if it is willing to handle the event
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1464
     before.
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1465
     Delegated messages get the original view as an extra argument.
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1466
     Delegation has higher priority than both controller or focusView
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1467
     forwarding."
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1468
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1469
    |delegate selector delegateMessage delegateQuery
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1470
     eventReceiver controller deviceMessage
5208
004c601d0bc6 code cleanup
sr
parents: 5203
diff changeset
  1471
     isKeyEvent isButtonEvent isMouseWheelEvent isPointerEvent
4041
7f4ec0d373f3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
  1472
     rect x y w h delegatedEvent rgn|
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1473
2498
4b5e7a08917d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2453
diff changeset
  1474
    type == #damage ifTrue:[
5320
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1475
	"/ OLDdamage scheme - this will vanish
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1476
	self shown ifTrue:[
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1477
	    rect := argArray.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1478
	    x := rect left.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1479
	    y := rect top.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1480
	    w := rect width.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1481
	    h := rect height.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1482
	    gc transformation notNil ifTrue:[
5320
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1483
		self deviceExposeX:x y:y width:w height:h
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1484
	    ] ifFalse:[
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1485
		self exposeX:x y:y width:w height:h
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1486
	    ]
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1487
	].
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1488
	^ self
4041
7f4ec0d373f3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
  1489
    ].
7f4ec0d373f3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
  1490
7f4ec0d373f3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
  1491
    type == #newDamage ifTrue:[
5320
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1492
	"/ New damage scheme
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1493
	rgn := updateRegion.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1494
	updateRegion := nil.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1495
	self shown ifTrue:[
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1496
	    rgn notNil ifTrue:[
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1497
		rgn do:[:rect |
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1498
		    "/ cg: I think the check for being realized may not be enough;
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1499
		    "/ there is a race here, if the view gets closed, while in the loop...
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1500
		    realized ifTrue:[
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1501
			x := rect left.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1502
			y := rect top.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1503
			w := rect width.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1504
			h := rect height.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1505
			gc transformation notNil ifTrue:[
5320
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1506
			    self deviceExposeX:x y:y width:w height:h
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1507
			] ifFalse:[
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1508
			    self exposeX:x y:y width:w height:h
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1509
			]
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1510
		    ]
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1511
		]
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1512
	    ]
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1513
	].
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1514
	^ self
2498
4b5e7a08917d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2453
diff changeset
  1515
    ].
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1516
5208
004c601d0bc6 code cleanup
sr
parents: 5203
diff changeset
  1517
    isKeyEvent := isButtonEvent := isPointerEvent := isMouseWheelEvent := false.
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1518
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1519
    (type == #'keyPress:x:y:') ifTrue:[
5320
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1520
	isKeyEvent := true.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1521
	deviceMessage := #'deviceKeyPress:x:y:'.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1522
	delegateMessage := #'keyPress:x:y:view:'.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1523
	delegateQuery := #'handlesKeyPress:inView:'.
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1524
    ] ifFalse:[ (type == #'keyRelease:x:y:') ifTrue:[
5320
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1525
	isKeyEvent := true.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1526
	deviceMessage := #'deviceKeyRelease:x:y:'.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1527
	delegateMessage := #'keyRelease:x:y:view:'.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1528
	delegateQuery := #'handlesKeyRelease:inView:'.
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1529
    ] ifFalse:[ (type == #'buttonMotion:x:y:') ifTrue:[
5320
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1530
	isButtonEvent := true.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1531
	deviceMessage := #'deviceButtonMotion:x:y:'.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1532
	delegateMessage := #'buttonMotion:x:y:view:'.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1533
	delegateQuery := #'handlesButtonMotion:inView:'.
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1534
    ] ifFalse:[ (type == #'buttonPress:x:y:') ifTrue:[
5320
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1535
	isButtonEvent := true.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1536
	deviceMessage := #'deviceButtonPress:x:y:'.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1537
	delegateMessage := #'buttonPress:x:y:view:'.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1538
	delegateQuery := #'handlesButtonPress:inView:'.
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1539
    ] ifFalse:[ (type == #'buttonRelease:x:y:') ifTrue:[
5320
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1540
	isButtonEvent := true.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1541
	deviceMessage := #'deviceButtonRelease:x:y:'.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1542
	delegateMessage := #'buttonRelease:x:y:view:'.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1543
	delegateQuery := #'handlesButtonRelease:inView:'.
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1544
    ] ifFalse:[ (type == #'buttonShiftPress:x:y:') ifTrue:[
5320
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1545
	isButtonEvent := true.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1546
	deviceMessage := #'deviceButtonShiftPress:x:y:'.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1547
	delegateMessage := #'buttonShiftPress:x:y:view:'.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1548
	delegateQuery := #'handlesButtonShiftPress:inView:'.
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1549
    ] ifFalse:[ (type == #'buttonMultiPress:x:y:') ifTrue:[
5320
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1550
	isButtonEvent := true.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1551
	deviceMessage := #'deviceButtonMultiPress:x:y:'.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1552
	delegateMessage := #'buttonMultiPress:x:y:view:'.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1553
	delegateQuery := #'handlesButtonMultiPress:inView:'.
4856
c47c688ed419 delegate mouse wheel events
Stefan Vogel <sv@exept.de>
parents: 4784
diff changeset
  1554
    ] ifFalse:[ (type == #mouseWheelMotion:x:y:amount:deltaTime:) ifTrue:[
5320
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1555
	isMouseWheelEvent := true.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1556
	deviceMessage := type.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1557
	delegateMessage := #mouseWheelMotion:x:y:amount:deltaTime:view:.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1558
	delegateQuery := #handlesMouseWheelMotion:inView:.
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1559
    ] ifFalse:[ (type == #'pointerEnter:x:y:') ifTrue:[
5320
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1560
	isPointerEvent := true.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1561
	deviceMessage := #'devicePointerEnter:x:y:'.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1562
	delegateMessage := #'pointerEnter:x:y:view:'.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1563
	delegateQuery := #'handlesPointerEnter:inView:'.
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1564
    ] ifFalse:[ (type == #'pointerLeave:') ifTrue:[
5320
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1565
	isPointerEvent := true.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1566
	deviceMessage := type.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1567
	delegateMessage := #'pointerLeave:view:'.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1568
	delegateQuery := #'handlesPointerLeave:inView:'.
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1569
    ] ifFalse:[ (type == #'exposeX:y:width:height:') ifTrue:[
5320
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1570
	deviceMessage := #'deviceExposeX:y:width:height:'.
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1571
    ] ifFalse:[ (type == #'graphicsExposeX:y:width:height:final:') ifTrue:[
5320
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1572
	deviceMessage := #'deviceGraphicsExposeX:y:width:height:final:'.
4856
c47c688ed419 delegate mouse wheel events
Stefan Vogel <sv@exept.de>
parents: 4784
diff changeset
  1573
    ]]]]]]]]]]]].
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1574
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1575
    "
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1576
     if there is a focusView, and its a keyboard event, pass it
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1577
     to that view (or its controller, or its delegate).
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1578
     In this case, a coordinate which is outside of
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1579
     the focusView (0 @ 0) is passed as x/y coordinates.
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1580
    "
5208
004c601d0bc6 code cleanup
sr
parents: 5203
diff changeset
  1581
    ((isKeyEvent "or:[isMouseWheelEvent]")
004c601d0bc6 code cleanup
sr
parents: 5203
diff changeset
  1582
    and:[focusView notNil and:[self ~~ focusView]]) ifTrue:[
5320
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1583
	delegatedEvent := ev shallowCopy.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1584
	delegatedEvent delegatedFrom:ev.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1585
	delegatedEvent arguments:(ev arguments shallowCopy).
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1586
	delegatedEvent x:-1; y:-1.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1587
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1588
	focusView
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1589
	    dispatchEvent:delegatedEvent
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1590
	    withFocusOn:nil
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1591
	    delegate:doDelegate.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1592
	^ self
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1593
    ].
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1594
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1595
    doDelegate ifTrue:[
5320
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1596
	"
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1597
	 handle delegated messages
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1598
	"
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1599
	(isKeyEvent
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1600
	 or:[isButtonEvent
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1601
	 or:[isMouseWheelEvent
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1602
	 or:[isPointerEvent]]]) ifTrue:[
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1603
	    delegate := self delegate.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1604
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1605
	    "
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1606
	     what a kludge - sending to delegate requires
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1607
	     another selector and an additional argument ...
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1608
	    "
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1609
	    (delegate notNil) ifTrue:[
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1610
		"
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1611
		 is the delegate interested in that event ?
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1612
		 (if it does not respond to the handlesXXX message, assume: NO)
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1613
		"
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1614
		(delegate askFor:delegateQuery with:(argArray at:1) with:self) ifTrue:[
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1615
		    "
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1616
		     mhmh ... have to convert to logical coordinates
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1617
		    "
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1618
		    |currentTransformation|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1619
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1620
		    currentTransformation := gc transformation.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1621
		    currentTransformation notNil ifTrue:[
5320
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1622
			argArray size > 2 ifTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1623
			    argArray at:2 put:(currentTransformation applyInverseToX:(argArray at:2)).
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1624
			    argArray at:3 put:(currentTransformation applyInverseToY:(argArray at:3)).
5320
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1625
			].
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1626
		    ].
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1627
		    argArray isNil ifTrue:[
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1628
			delegate perform:delegateMessage with:self
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1629
		    ] ifFalse:[
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1630
			delegate perform:delegateMessage withArguments:(argArray copyWith:self)
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1631
		    ].
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1632
		    ^ self
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1633
		]
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1634
	    ].
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1635
	].
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1636
    ].
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1637
2708
855835147902 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2660
diff changeset
  1638
    "
855835147902 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2660
diff changeset
  1639
     if I am not shown, ignore input events
855835147902 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2660
diff changeset
  1640
    "
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1641
    (isKeyEvent
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1642
     or:[isButtonEvent
5208
004c601d0bc6 code cleanup
sr
parents: 5203
diff changeset
  1643
     or:[isMouseWheelEvent
004c601d0bc6 code cleanup
sr
parents: 5203
diff changeset
  1644
     or:[isPointerEvent]]]) ifTrue:[
5320
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1645
	realized ifFalse:[
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1646
	    ^ self
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1647
	]
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1648
    ].
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1649
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1650
    "
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1651
     if there is a controller, that one gets all user events
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1652
    "
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1653
    eventReceiver := self.
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1654
    (controller := self controller) notNil ifTrue:[
5320
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1655
	(isKeyEvent
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1656
	 or:[isButtonEvent
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1657
	 or:[isMouseWheelEvent
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1658
	 or:[isPointerEvent
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1659
	 or:[(type == #focusIn)
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1660
	 or:[(type == #focusOut)]]]]]) ifTrue:[
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1661
	    eventReceiver := controller.
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1662
	]
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1663
    ].
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1664
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1665
    "
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1666
     finally, another one:
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1667
     if I have a transformation, edit the selector from #foo to #deviceFoo...
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1668
     This allows for the event to be handled either in device or
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1669
     logical coordinates. (since the deviceFoo-messages default implementation
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1670
     in DisplaySurface translates and resends).
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1671
     Actually, I could always send deviceXXX without speed penalty
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1672
     (event sending is no high frequency operation), but that just adds
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1673
     another context to any debuggers walkback, making things less clear.
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1674
    "
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1675
    selector := type.
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1676
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1677
    gc transformation notNil ifTrue:[
5320
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1678
	(isKeyEvent
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1679
	 or:[isButtonEvent
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1680
	 or:[isMouseWheelEvent
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1681
	 or:[isPointerEvent
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1682
	 or:[(type == #'exposeX:y:width:height:')
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1683
	 or:[(type == #'graphicsExposeX:y:width:height:final:')]]]]]) ifTrue:[
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1684
	    selector := deviceMessage
a222d6215ff0 renderer instvar added (hook for more flexible, individual widget rendering)
sr
parents: 5208
diff changeset
  1685
	]
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1686
    ].
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1687
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1688
    eventReceiver perform:selector withArguments:argArray
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1689
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1690
    "Created: / 20.5.1998 / 22:46:25 / cg"
2708
855835147902 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2660
diff changeset
  1691
    "Modified: / 21.5.1999 / 19:55:31 / cg"
2962
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2868
diff changeset
  1692
!
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2868
diff changeset
  1693
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2868
diff changeset
  1694
dispatchEvent:event withFocusOn:focusViewOrNil
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2868
diff changeset
  1695
    "dispatch the event"
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2868
diff changeset
  1696
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1697
    ^ self
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1698
	dispatchEvent:event
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  1699
	withFocusOn:focusViewOrNil
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  1700
	delegate:true
3094
7ef0f53288bc always use the new #dispatchEvent methods
ca
parents: 3070
diff changeset
  1701
7ef0f53288bc always use the new #dispatchEvent methods
ca
parents: 3070
diff changeset
  1702
    "Modified: / 20.5.1998 / 23:01:15 / cg"
7ef0f53288bc always use the new #dispatchEvent methods
ca
parents: 3070
diff changeset
  1703
!
7ef0f53288bc always use the new #dispatchEvent methods
ca
parents: 3070
diff changeset
  1704
7ef0f53288bc always use the new #dispatchEvent methods
ca
parents: 3070
diff changeset
  1705
dispatchEvent:event withFocusOn:focusViewOrNil delegate:doDelegate
7ef0f53288bc always use the new #dispatchEvent methods
ca
parents: 3070
diff changeset
  1706
    "dispatch the event"
7ef0f53288bc always use the new #dispatchEvent methods
ca
parents: 3070
diff changeset
  1707
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1708
    ^ self
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1709
	dispatchEvent:event
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  1710
	type:event type
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  1711
	arguments:(event arguments)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  1712
	withFocusOn:focusViewOrNil
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  1713
	delegate:doDelegate
2962
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2868
diff changeset
  1714
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2868
diff changeset
  1715
    "Modified: / 20.5.1998 / 23:01:15 / cg"
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1716
! !
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1717
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1718
!DisplaySurface methodsFor:'event handling'!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1719
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1720
activateMenu
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1721
    "if there is a menu, show it."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1722
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1723
    |menu|
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1724
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1725
    (menu := self middleButtonMenu) notNil ifTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1726
	menu isArray ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1727
	    "/ a spec array
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1728
	    menu := menu decodeAsLiteralArray.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1729
	    menu receiver:self.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1730
	].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1731
	menu showAtPointer
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1732
    ]
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1733
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1734
    "Created: 1.3.1996 / 13:24:55 / cg"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1735
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1736
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1737
buttonMotion:state x:x y:y
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1738
    "mouse was moved while button is pressed - do nothing here"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1739
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1740
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1741
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1742
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1743
buttonMultiPress:button x:x y:y
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1744
    "button was pressed fast after previous press - default to press-again"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1745
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1746
    ^ self buttonPress:button x:x y:y
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1747
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1748
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1749
buttonPress:button x:x y:y
5344
2c3f14c132be preps for right-menu on buttonRelease
Claus Gittinger <cg@exept.de>
parents: 5320
diff changeset
  1750
    "button was pressed - if its middle button and there is a menu, show it."
2c3f14c132be preps for right-menu on buttonRelease
Claus Gittinger <cg@exept.de>
parents: 5320
diff changeset
  1751
2c3f14c132be preps for right-menu on buttonRelease
Claus Gittinger <cg@exept.de>
parents: 5320
diff changeset
  1752
    (button == 2) ifTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1753
	UserPreferences current showRightButtonMenuOnRelease ifFalse:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1754
	    self activateMenu.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1755
	].
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1756
    ]
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1757
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1758
    "Modified: 1.3.1996 / 13:25:07 / cg"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1759
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1760
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1761
buttonRelease:button x:x y:y
5344
2c3f14c132be preps for right-menu on buttonRelease
Claus Gittinger <cg@exept.de>
parents: 5320
diff changeset
  1762
    (button == 2) ifTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1763
	UserPreferences current showRightButtonMenuOnRelease ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1764
	    self activateMenu.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1765
	].
5344
2c3f14c132be preps for right-menu on buttonRelease
Claus Gittinger <cg@exept.de>
parents: 5320
diff changeset
  1766
    ].
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1767
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1768
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1769
catchExpose
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1770
    "this MUST be sent BEFORE doing a bit-blt copy (i.e. copyFrom...),
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1771
     to tell the sensor that incoming expose events are to be remembered.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1772
     Sometime after the bit-blt, waitForExpose should be sent, to finally
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1773
     suspend until the expose/noExpose event arrives.
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1774
     This is an X speciality - for devices which do not need this kind of
1332
624bcfb69025 commentary
ca
parents: 1317
diff changeset
  1775
     asynchronous bit-blt confirmation, this is a noop.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1776
    "
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1777
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1778
    |wg|
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1779
1027
0ba82862ca8d fixes for synchronous scrolling (WINDOWS)
Claus Gittinger <cg@exept.de>
parents: 1012
diff changeset
  1780
    device scrollsAsynchronous ifFalse:[
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1781
	self setGotExposeFlag.
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1782
	^ self
1027
0ba82862ca8d fixes for synchronous scrolling (WINDOWS)
Claus Gittinger <cg@exept.de>
parents: 1012
diff changeset
  1783
    ].
0ba82862ca8d fixes for synchronous scrolling (WINDOWS)
Claus Gittinger <cg@exept.de>
parents: 1012
diff changeset
  1784
1295
ef93ded3c030 renamed graphicExpose -> graphicsExpose;
Claus Gittinger <cg@exept.de>
parents: 1253
diff changeset
  1785
    self setGraphicsExposures:true.
ef93ded3c030 renamed graphicExpose -> graphicsExpose;
Claus Gittinger <cg@exept.de>
parents: 1253
diff changeset
  1786
5006
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
  1787
    self clearGotExposeFlag.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1788
    wg := self windowGroup.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1789
    wg notNil ifTrue:[
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1790
	"
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1791
	 must process eny pending expose events, since
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1792
	 usually the origin is changed soon so that previous
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1793
	 expose events coordinates are invalid
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1794
	"
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1795
	wg processRealExposeEventsFor:self.
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1796
	wg sensor catchExposeFor:self
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1797
    ]
1245
4a4e15a3e4fd pass the view as argument to the catchExpose method
Claus Gittinger <cg@exept.de>
parents: 1236
diff changeset
  1798
1851
6a6225647696 fixes for expose-event-lost after re-map
Claus Gittinger <cg@exept.de>
parents: 1806
diff changeset
  1799
    "Modified: 6.8.1997 / 19:50:15 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1800
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1801
3595
fee0baf5b18e #coveredBy: moved from SimpleView to DisplaySurface
Stefan Vogel <sv@exept.de>
parents: 3546
diff changeset
  1802
coveredBy:aView
fee0baf5b18e #coveredBy: moved from SimpleView to DisplaySurface
Stefan Vogel <sv@exept.de>
parents: 3546
diff changeset
  1803
    "the receiver has been covered by another view;
fee0baf5b18e #coveredBy: moved from SimpleView to DisplaySurface
Stefan Vogel <sv@exept.de>
parents: 3546
diff changeset
  1804
     we are not interested in that here (but see modalBox for more)."
fee0baf5b18e #coveredBy: moved from SimpleView to DisplaySurface
Stefan Vogel <sv@exept.de>
parents: 3546
diff changeset
  1805
!
fee0baf5b18e #coveredBy: moved from SimpleView to DisplaySurface
Stefan Vogel <sv@exept.de>
parents: 3546
diff changeset
  1806
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1807
deviceButtonMotion:state x:x y:y
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1808
    "this is the low-level (untransformed) event as received
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1809
     from the device (i.e. coordinates are in device coordinates).
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1810
     If there is a transformation, apply the inverse
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1811
     and send a #buttonMotion with the logical coordinates.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1812
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  1813
     Views which are interested in deviceCoordinates should
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1814
     redefine this method -
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  1815
     those which are interested in logical coordinates
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1816
     should redefine #buttonMotion:x:y:"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1817
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1818
    |lx ly currentTransformation|
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1819
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1820
    lx := x.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1821
    ly := y.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1822
    currentTransformation := gc transformation.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1823
    currentTransformation notNil ifTrue:[
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1824
	lx notNil ifTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1825
	    lx := currentTransformation applyInverseToX:lx.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1826
	    ly := currentTransformation applyInverseToY:ly.
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1827
	].
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1828
    ].
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1829
    self buttonMotion:state x:lx y:ly
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1830
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1831
    "Modified: 20.5.1996 / 17:45:25 / cg"
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  1832
    "Modified: 14.10.1996 / 22:25:12 / stefan"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1833
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1834
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1835
deviceButtonMultiPress:butt x:x y:y
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1836
    "this is the low-level (untransformed) event as received
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1837
     from the device (i.e. coordinates are in device coordinates).
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1838
     If there is a transformation, apply the inverse
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1839
     and send a buttonMultiPress with the logical coordinates.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1840
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  1841
     Views which are interested in deviceCoordinates should
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1842
     redefine this method -
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  1843
     those which are interested in logical coordinates
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1844
     should redefine #buttonMultiPress:x:y:"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1845
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1846
    |lx ly currentTransformation|
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1847
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1848
    lx := x.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1849
    ly := y.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1850
    currentTransformation := gc transformation.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1851
    currentTransformation notNil ifTrue:[
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1852
	lx notNil ifTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1853
	    lx := currentTransformation applyInverseToX:lx.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1854
	    ly := currentTransformation applyInverseToY:ly.
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1855
	].
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1856
    ].
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1857
    self buttonMultiPress:butt x:lx y:ly
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1858
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1859
    "Modified: 20.5.1996 / 17:45:22 / cg"
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  1860
    "Modified: 14.10.1996 / 22:25:22 / stefan"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1861
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1862
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1863
deviceButtonPress:butt x:x y:y
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1864
    "this is the low-level (untransformed) event as received
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1865
     from the device (i.e. coordinates are in device coordinates).
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1866
     If there is a transformation, apply the inverse
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1867
     and send a buttonPress with the logical coordinates.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1868
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  1869
     Views which are interested in deviceCoordinates should
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1870
     redefine this method -
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  1871
     those which are interested in logical coordinates
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1872
     should redefine #buttonPress:x:y:"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1873
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1874
    |lx ly currentTransformation|
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1875
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1876
    lx := x.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1877
    ly := y.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1878
    currentTransformation := gc transformation.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1879
    currentTransformation notNil ifTrue:[
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1880
	lx notNil ifTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1881
	    lx := currentTransformation applyInverseToX:lx.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1882
	    ly := currentTransformation applyInverseToY:ly.
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1883
	].
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1884
    ].
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1885
    self buttonPress:butt x:lx y:ly
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1886
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1887
    "Modified: 20.5.1996 / 17:45:18 / cg"
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  1888
    "Modified: 14.10.1996 / 22:25:30 / stefan"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1889
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1890
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1891
deviceButtonRelease:butt x:x y:y
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1892
    "this is the low-level (untransformed) event as received
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1893
     from the device (i.e. coordinates are in device coordinates).
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1894
     If there is a transformation, apply the inverse
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1895
     and send a buttonRelease with the logical coordinates.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1896
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  1897
     Views which are interested in deviceCoordinates should
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1898
     redefine this method -
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  1899
     those which are interested in logical coordinates
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1900
     should redefine #buttonRelease:x:y:"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1901
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1902
    |lx ly currentTransformation|
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1903
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1904
    lx := x.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1905
    ly := y.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1906
    currentTransformation := gc transformation.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1907
    currentTransformation notNil ifTrue:[
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1908
	lx notNil ifTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1909
	    lx := currentTransformation applyInverseToX:lx.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1910
	    ly := currentTransformation applyInverseToY:ly.
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1911
	].
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1912
    ].
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1913
    self buttonRelease:butt x:lx y:ly
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1914
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1915
    "Modified: 20.5.1996 / 17:45:14 / cg"
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  1916
    "Modified: 14.10.1996 / 22:25:37 / stefan"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1917
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1918
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1919
deviceButtonShiftPress:butt x:x y:y
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1920
    "this is the low-level (untransformed) event as received
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1921
     from the device (i.e. coordinates are in device coordinates).
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1922
     If there is a transformation, apply the inverse
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1923
     and send a buttonShiftPress with the logical coordinates.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1924
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  1925
     Views which are interested in deviceCoordinates should
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1926
     redefine this method -
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  1927
     those which are interested in logical coordinates
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1928
     should redefine #buttonShiftPress:x:y:"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1929
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1930
    |lx ly currentTransformation|
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1931
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1932
    lx := x.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1933
    ly := y.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1934
    currentTransformation := gc transformation.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1935
    currentTransformation notNil ifTrue:[
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1936
	lx notNil ifTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1937
	    lx := currentTransformation applyInverseToX:lx.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1938
	    ly := currentTransformation applyInverseToY:ly.
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1939
	].
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1940
    ].
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1941
    self buttonShiftPress:butt x:lx y:ly
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1942
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1943
    "Modified: 20.5.1996 / 17:45:09 / cg"
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  1944
    "Modified: 14.10.1996 / 22:25:49 / stefan"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1945
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1946
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1947
deviceExposeX:x y:y width:w height:h
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1948
    "this is the low-level (untransformed) event as received
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1949
     from the device (i.e. coordinates are in device coordinates).
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1950
     If there is a transformation, apply the inverse
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1951
     and send an expose with the logical coordinates.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1952
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  1953
     Views which are interested in deviceCoordinates should
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1954
     redefine this method -
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  1955
     those which are interested in logical coordinates
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1956
     should redefine #exposeX:x:y:width:height:"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1957
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1958
    |lx ly lw lh currentTransformation|
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1959
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1960
    lx := x.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1961
    ly := y.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1962
    lw := w.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1963
    lh := h.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1964
    currentTransformation := gc transformation.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1965
    currentTransformation notNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1966
	lx := currentTransformation applyInverseToX:lx.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1967
	ly := currentTransformation applyInverseToY:ly.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1968
	lw := currentTransformation applyInverseScaleX:lw.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1969
	lh := currentTransformation applyInverseScaleY:lh.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1970
    ].
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1971
    self exposeX:lx y:ly width:lw height:lh
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1972
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1973
    "Modified: 13.5.1996 / 11:31:44 / cg"
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  1974
    "Modified: 14.10.1996 / 22:26:00 / stefan"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1975
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1976
1295
ef93ded3c030 renamed graphicExpose -> graphicsExpose;
Claus Gittinger <cg@exept.de>
parents: 1253
diff changeset
  1977
deviceGraphicsExposeX:x y:y width:w height:h final:final
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1978
    "this is the low-level (untransformed) event as received
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1979
     from the device (i.e. coordinates are in device coordinates).
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1980
     If there is a transformation, apply the inverse
1295
ef93ded3c030 renamed graphicExpose -> graphicsExpose;
Claus Gittinger <cg@exept.de>
parents: 1253
diff changeset
  1981
     and send a graphicsExpose with the logical coordinates.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1982
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  1983
     Views which are interested in deviceCoordinates should
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1984
     redefine this method -
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  1985
     those which are interested in logical coordinates
1295
ef93ded3c030 renamed graphicExpose -> graphicsExpose;
Claus Gittinger <cg@exept.de>
parents: 1253
diff changeset
  1986
     should redefine #graphicsExposeX:x:y:width:height:"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1987
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1988
    |lx ly lw lh currentTransformation|
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1989
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1990
    lx := x.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1991
    ly := y.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1992
    lw := w.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1993
    lh := h.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1994
    currentTransformation := gc transformation.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1995
    currentTransformation notNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1996
	lx := currentTransformation applyInverseToX:lx.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1997
	ly := currentTransformation applyInverseToY:ly.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1998
	lw := currentTransformation applyInverseScaleX:lw.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  1999
	lh := currentTransformation applyInverseScaleY:lh.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2000
    ].
1295
ef93ded3c030 renamed graphicExpose -> graphicsExpose;
Claus Gittinger <cg@exept.de>
parents: 1253
diff changeset
  2001
    self graphicsExposeX:lx y:ly width:lw height:lh final:final
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2002
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2003
    "Modified: 13.5.1996 / 11:31:54 / cg"
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2004
    "Modified: 14.10.1996 / 22:26:08 / stefan"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2005
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2006
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2007
deviceKeyPress:key x:x y:y
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2008
    "this is the low-level (untransformed) event as received
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2009
     from the device (i.e. coordinates are in device coordinates).
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2010
     If there is a transformation, apply the inverse
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2011
     and send a keyPress with the logical coordinates.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2012
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2013
     Views which are interested in deviceCoordinates should
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2014
     redefine this method -
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2015
     those which are interested in logical coordinates
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2016
     should redefine #keyPress:x:y:"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2017
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2018
    |lx ly currentTransformation|
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2019
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2020
    lx := x.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2021
    ly := y.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2022
    currentTransformation := gc transformation.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2023
    currentTransformation notNil ifTrue:[
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  2024
	lx notNil ifTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2025
	    lx := currentTransformation applyInverseToX:lx.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2026
	    ly := currentTransformation applyInverseToY:ly.
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  2027
	]
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2028
    ].
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2029
    self keyPress:key x:lx y:ly
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2030
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2031
    "Modified: 20.5.1996 / 17:44:59 / cg"
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2032
    "Modified: 14.10.1996 / 22:26:17 / stefan"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2033
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2034
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2035
deviceKeyRelease:key x:x y:y
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2036
    "this is the low-level (untransformed) event as received
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2037
     from the device (i.e. coordinates are in device coordinates).
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2038
     If there is a transformation, apply the inverse
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2039
     and send a keyRelease with the logical coordinates.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2040
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2041
     Views which are interested in deviceCoordinates should
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2042
     redefine this method -
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2043
     those which are interested in logical coordinates
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2044
     should redefine #keyRelease:x:y:"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2045
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2046
    |lx ly currentTransformation|
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2047
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2048
    lx := x.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2049
    ly := y.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2050
    currentTransformation := gc transformation.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2051
    currentTransformation notNil ifTrue:[
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  2052
	lx notNil ifTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2053
	    lx := currentTransformation applyInverseToX:lx.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2054
	    ly := currentTransformation applyInverseToY:ly.
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  2055
	]
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2056
    ].
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2057
    self keyRelease:key x:lx y:ly
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2058
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2059
    "Modified: 20.5.1996 / 17:44:42 / cg"
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2060
    "Modified: 14.10.1996 / 22:26:28 / stefan"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2061
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2062
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2063
devicePointerEnter:state x:x y:y
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2064
    "this is the low-level (untransformed) event as received
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2065
     from the device (i.e. coordinates are in device coordinates).
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2066
     If there is a transformation, apply the inverse
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2067
     and send a pointerEnter with the logical coordinates.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2068
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2069
     Views which are interested in deviceCoordinates should
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2070
     redefine this method -
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2071
     those which are interested in logical coordinates
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2072
     should redefine #pointerEnter:x:y:"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2073
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2074
    |lx ly currentTransformation|
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2075
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2076
    lx := x.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2077
    ly := y.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2078
    currentTransformation := gc transformation.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2079
    currentTransformation notNil ifTrue:[
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  2080
	lx notNil ifTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2081
	    lx := currentTransformation applyInverseToX:lx.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2082
	    ly := currentTransformation applyInverseToY:ly.
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  2083
	]
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2084
    ].
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2085
    self pointerEnter:state x:lx y:ly
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2086
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2087
    "Modified: 20.5.1996 / 17:44:54 / cg"
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2088
    "Modified: 14.10.1996 / 22:26:35 / stefan"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2089
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2090
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2091
exposeX:x y:y width:w height:h
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2092
    "an expose event - nothing done here"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2093
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2094
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2095
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2096
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2097
focusIn
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2098
    "got keyboard focus - do nothing here"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2099
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2100
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2101
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2102
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2103
focusOut
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2104
    "lost keyboard focus - do nothing here"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2105
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2106
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2107
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2108
1295
ef93ded3c030 renamed graphicExpose -> graphicsExpose;
Claus Gittinger <cg@exept.de>
parents: 1253
diff changeset
  2109
graphicsExposeX:x y:y width:w height:h final:final
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2110
    "an expose event after a scroll - do normal redraw processing"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2111
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2112
    self exposeX:x y:y width:w height:h
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2113
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2114
5961
77ddad815ad4 Support of hotkey events
ab
parents: 5935
diff changeset
  2115
hotkeyWithId:aId rawKey:aKey
77ddad815ad4 Support of hotkey events
ab
parents: 5935
diff changeset
  2116
    "default action is to do nothing - may be reimplemented "
77ddad815ad4 Support of hotkey events
ab
parents: 5935
diff changeset
  2117
    ^ self
77ddad815ad4 Support of hotkey events
ab
parents: 5935
diff changeset
  2118
!
77ddad815ad4 Support of hotkey events
ab
parents: 5935
diff changeset
  2119
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2120
keyPress:key x:x y:y
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2121
    "a key was pressed in this view.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2122
     Here only keyCommands are handled - more action has to
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2123
     be implemented by redefining this method"
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2124
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2125
    |action rest restKey keyCommands|
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2126
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2127
    (keyCommands := self keyCommands) notNil ifTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2128
	action := keyCommands at:key ifAbsent:[nil].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2129
	action value
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2130
    ].
3514
a20d990a7b3b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3343
diff changeset
  2131
1105
76a76be62263 allow second chance for keys with Basic-prefix
Claus Gittinger <cg@exept.de>
parents: 1093
diff changeset
  2132
    key isSymbol ifTrue:[
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2133
	(key startsWith:'Basic') ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2134
	    "/ an unhandled BasicFoo key;
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2135
	    "/ retry as Foo
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2136
	    rest := key withoutPrefix:'Basic'.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2137
	    restKey := rest asSymbolIfInterned.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2138
	    restKey notNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2139
		self keyPress:restKey x:x y:y
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2140
	    ]
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2141
	].
1105
76a76be62263 allow second chance for keys with Basic-prefix
Claus Gittinger <cg@exept.de>
parents: 1093
diff changeset
  2142
    ].
76a76be62263 allow second chance for keys with Basic-prefix
Claus Gittinger <cg@exept.de>
parents: 1093
diff changeset
  2143
76a76be62263 allow second chance for keys with Basic-prefix
Claus Gittinger <cg@exept.de>
parents: 1093
diff changeset
  2144
    "Modified: 6.11.1996 / 17:51:15 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2145
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2146
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2147
keyRelease:key x:x y:y
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2148
    "default action is to do nothing"
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2149
1105
76a76be62263 allow second chance for keys with Basic-prefix
Claus Gittinger <cg@exept.de>
parents: 1093
diff changeset
  2150
    key isSymbol ifTrue:[
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  2151
	(key startsWith:#Basic) ifTrue:[
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  2152
	    "/ an unhandled BasicFoo key;
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  2153
	    "/ retry as Foo
1105
76a76be62263 allow second chance for keys with Basic-prefix
Claus Gittinger <cg@exept.de>
parents: 1093
diff changeset
  2154
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  2155
	    self keyRelease:(key copyFrom:#Basic size) asSymbol x:x y:y
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  2156
	].
1105
76a76be62263 allow second chance for keys with Basic-prefix
Claus Gittinger <cg@exept.de>
parents: 1093
diff changeset
  2157
    ].
76a76be62263 allow second chance for keys with Basic-prefix
Claus Gittinger <cg@exept.de>
parents: 1093
diff changeset
  2158
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2159
    ^ self
1105
76a76be62263 allow second chance for keys with Basic-prefix
Claus Gittinger <cg@exept.de>
parents: 1093
diff changeset
  2160
76a76be62263 allow second chance for keys with Basic-prefix
Claus Gittinger <cg@exept.de>
parents: 1093
diff changeset
  2161
    "Modified: 6.11.1996 / 17:51:20 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2162
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2163
6828
d7a7f04b015f class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6815
diff changeset
  2164
mouseWheelMotion:buttonState x:x y:y amount:amount deltaTime:dTime
d7a7f04b015f class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6815
diff changeset
  2165
    "ignored"
d7a7f04b015f class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6815
diff changeset
  2166
d7a7f04b015f class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6815
diff changeset
  2167
    ^ self
d7a7f04b015f class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6815
diff changeset
  2168
!
d7a7f04b015f class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6815
diff changeset
  2169
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2170
noExpose
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2171
    "a no expose event after a scroll (event-mode only)"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2172
5006
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
  2173
    self setGotExposeFlag.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2174
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2175
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2176
pointerEnter:state x:x y:y
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2177
    "mouse cursor entered view - do nothing here"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2178
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2179
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2180
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2181
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2182
pointerLeave:state
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2183
    "mouse cursor left view - do nothing here"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2184
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2185
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2186
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2187
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2188
resizeRequest
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2189
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2190
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2191
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2192
waitForExpose
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2193
    "wait until an expose event arrives (to wait for scroll-finish)"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2194
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2195
    |wg endPollTime pollDelay graphicsDevice|
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2196
7287
1e2a3258dd8a Replace all `self graphicsDevice` with `device`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7286
diff changeset
  2197
    graphicsDevice := device.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2198
    graphicsDevice scrollsAsynchronous ifFalse:[
6819
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2199
	self setGotExposeFlag.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2200
	^ self
1027
0ba82862ca8d fixes for synchronous scrolling (WINDOWS)
Claus Gittinger <cg@exept.de>
parents: 1012
diff changeset
  2201
    ].
0ba82862ca8d fixes for synchronous scrolling (WINDOWS)
Claus Gittinger <cg@exept.de>
parents: 1012
diff changeset
  2202
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2203
    wg := self windowGroup.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2204
    wg notNil ifTrue:[
6819
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2205
	"/
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2206
	"/ a normal (suspendable) view.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2207
	"/ wait by doing a real wait
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2208
	"/
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2209
	 wg sensor waitForExposeFor:self
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2210
    ] ifFalse:[
6819
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2211
	"/
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2212
	"/ a pure event driven view.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2213
	"/ wait by doing a direct dispatch loop until the event arrives.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2214
	"/ i.e. poll for the event
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2215
	"/
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2216
	graphicsDevice isWindowsPlatform ifTrue:[
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2217
	    pollDelay := 1.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2218
	] ifFalse:[
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2219
	    pollDelay := 3.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2220
	].
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2221
	endPollTime := Timestamp now addSeconds:pollDelay.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2222
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2223
	[self gotExpose] whileFalse:[
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2224
	    realized ifTrue:[
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2225
		(graphicsDevice exposeEventPendingFor:self drawableId withSync:true) ifTrue:[
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2226
		    graphicsDevice dispatchExposeEventFor:self drawableId.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2227
		].
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2228
	    ].
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2229
	    realized ifFalse:[
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2230
		self setGotExposeFlag.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2231
		^ self
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2232
	    ].
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2233
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2234
	    "/ break out of the poll after a while
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2235
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2236
	    Timestamp now > endPollTime ifTrue:[
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2237
		'DisplaySurface [warning]: lost expose event' errorPrintCR.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2238
		self setGotExposeFlag.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2239
		^ self
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2240
	    ].
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2241
	    Processor yield.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6771
diff changeset
  2242
	].
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2243
    ]
1129
2a3eaf218500 destroy while waiting for expose.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  2244
2421
037f43af3b0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2398
diff changeset
  2245
    "Modified: / 9.1.1999 / 01:58:09 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2246
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2247
3884
dc9ea4cfc963 method category rename
Claus Gittinger <cg@exept.de>
parents: 3859
diff changeset
  2248
!DisplaySurface methodsFor:'initialization & release'!
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2249
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2250
destroy
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2251
    "view is about to be destroyed -
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2252
     first destroy menu if there is one and also destroy the GC.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2253
     then the view is physically destroyed."
4291
85475200669d nil gcId before desroying GC
Stefan Vogel <sv@exept.de>
parents: 4283
diff changeset
  2254
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2255
    self
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2256
	middleButtonMenu:nil;
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2257
	keyCommands:nil.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2258
    super destroy.
2427
d03456c66c8c separated destroyView into extra method to be redefinable
Claus Gittinger <cg@exept.de>
parents: 2421
diff changeset
  2259
!
d03456c66c8c separated destroyView into extra method to be redefinable
Claus Gittinger <cg@exept.de>
parents: 2421
diff changeset
  2260
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2261
destroyed
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2262
    "view has been destroyed by someone else"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2263
4435
3704585b9706 X11-deviceHandle fix:
Claus Gittinger <cg@exept.de>
parents: 4413
diff changeset
  2264
    |id|
3704585b9706 X11-deviceHandle fix:
Claus Gittinger <cg@exept.de>
parents: 4413
diff changeset
  2265
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2266
    (id := self drawableId) notNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2267
	self setId:nil.
4435
3704585b9706 X11-deviceHandle fix:
Claus Gittinger <cg@exept.de>
parents: 4413
diff changeset
  2268
	device removeKnownView:self withId:id.
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2269
	realized := false.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2270
    ].
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2271
    self destroy
1481
335881213805 added #isTopView query
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  2272
335881213805 added #isTopView query
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  2273
    "Modified: 22.3.1997 / 14:56:34 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2274
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2275
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2276
initCursor
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2277
    "default cursor for all views"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2278
2453
65f4faf478b0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2443
diff changeset
  2279
    cursor := Cursor normal
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2280
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2281
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2282
initStyle
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2283
    "nothing done here"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2284
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2285
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2286
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2287
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2288
initialize
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2289
    "initialize defaults"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2290
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2291
    super initialize.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2292
4137
f593548423e2 care for nil eventmask (early access ?)
werner
parents: 4136
diff changeset
  2293
    eventMask := 0.
2995
a56a68b5d25e eliminated ref to Display
Stefan Vogel <sv@exept.de>
parents: 2962
diff changeset
  2294
    device notNil ifTrue:[
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2295
	eventMask := device defaultEventMask.
2995
a56a68b5d25e eliminated ref to Display
Stefan Vogel <sv@exept.de>
parents: 2962
diff changeset
  2296
    ].
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2297
    viewBackground := self background.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2298
    backed := false.
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  2299
    flags := 0.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2300
    self initCursor
1252
fccb14086649 exposePending is no longer used
Claus Gittinger <cg@exept.de>
parents: 1245
diff changeset
  2301
fccb14086649 exposePending is no longer used
Claus Gittinger <cg@exept.de>
parents: 1245
diff changeset
  2302
    "Modified: 18.1.1997 / 18:09:41 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2303
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2304
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2305
prepareForReinit
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2306
    gc notNil ifTrue:[
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2307
	gc prepareForReinit.
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2308
    ].
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2309
!
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2310
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2311
reAdjustGeometry
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2312
    "sent late during snapin processing, nothing done here"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2313
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2314
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2315
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2316
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2317
recreate
3300
d7b046ccbb33 comment
Claus Gittinger <cg@exept.de>
parents: 3291
diff changeset
  2318
    "recreate (i.e. tell X about me) after a snapin or a migration"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2319
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2320
    viewBackground isColor ifTrue:[
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2321
	viewBackground := viewBackground onDevice:device
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2322
    ].
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2323
    super recreate.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2324
    cursor notNil ifTrue:[
7287
1e2a3258dd8a Replace all `self graphicsDevice` with `device`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7286
diff changeset
  2325
	cursor := cursor onDevice:device.
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2326
    ].
1252
fccb14086649 exposePending is no longer used
Claus Gittinger <cg@exept.de>
parents: 1245
diff changeset
  2327
1494
4faf11deec70 cursor #on: is obsoleted by #onDevice:.
Claus Gittinger <cg@exept.de>
parents: 1481
diff changeset
  2328
    "Modified: 28.3.1997 / 13:48:06 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2329
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2330
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2331
reinitStyle
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2332
    "nothing done here"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2333
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2334
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2335
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2336
3291
b29011aeb5a9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3290
diff changeset
  2337
releaseDeviceResources
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2338
    super destroy.
3291
b29011aeb5a9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3290
diff changeset
  2339
    self setDevice:nil id:nil gcId:nil.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2340
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2341
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2342
!DisplaySurface methodsFor:'keyboard commands'!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2343
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2344
addActionForKey:aKey action:aBlock
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2345
    "define a keyboard command function"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2346
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2347
    |keyCommands|
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2348
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2349
    (keyCommands := self keyCommands) isNil ifTrue:[
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2350
	self keyCommands:(keyCommands := IdentityDictionary new).
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2351
    ].
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2352
    keyCommands at:aKey put:aBlock
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2353
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2354
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2355
keyCommands
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2356
    ^ self getAttribute:#keyCommands
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2357
!
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2358
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2359
keyCommands:aDictionaryOrNil
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2360
    self setAttribute:#keyCommands to:aDictionaryOrNil
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2361
!
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2362
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2363
removeActionForKey:aKey
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2364
    |keyCommands|
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2365
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2366
    (keyCommands := self keyCommands) notNil ifTrue:[
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2367
	keyCommands removeKey:aKey ifAbsent:nil
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2368
    ]
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2369
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2370
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2371
!DisplaySurface methodsFor:'queries'!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2372
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2373
buttonMotionEventPending
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2374
    "return true, if a button motion event is pending.
5935
6093fded5ed1 comment/format in: #buttonMotionEventPending
Claus Gittinger <cg@exept.de>
parents: 5923
diff changeset
  2375
     Normally, you don't want to use this, since no polling is needed
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2376
     (not even for mouse-tracking).
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6240
diff changeset
  2377
     Also, don't use it, since it does not honor the windowGroup,
5935
6093fded5ed1 comment/format in: #buttonMotionEventPending
Claus Gittinger <cg@exept.de>
parents: 5923
diff changeset
  2378
     but goes directly to the device instead.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2379
     Actually, its a historical leftover"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2380
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2381
    device flush.
7287
1e2a3258dd8a Replace all `self graphicsDevice` with `device`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7286
diff changeset
  2382
    ^ device eventPending:#buttonMotion for:self drawableId
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2383
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2384
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2385
buttonReleaseEventPending
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2386
    "return true, if a button release event is pending.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2387
     Dont use it, since it does not honor the windowGroup, but
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2388
     goes directly to the device instead.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2389
     Actually, its a historical leftover"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2390
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2391
    device flush.
7287
1e2a3258dd8a Replace all `self graphicsDevice` with `device`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7286
diff changeset
  2392
    ^ device eventPending:#buttonRelease for:self drawableId
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2393
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2394
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2395
exposeEventPending
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2396
    "return true, if an expose event is pending."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2397
4221
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
  2398
    |windowGroup|
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
  2399
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
  2400
    windowGroup := self windowGroup.
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
  2401
    windowGroup notNil ifTrue:[
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2402
	(windowGroup sensor hasExposeEventFor:self) ifTrue:[^ true].
4221
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
  2403
    ].
7287
1e2a3258dd8a Replace all `self graphicsDevice` with `device`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7286
diff changeset
  2404
    ^ device eventPending:#expose for:self drawableId
2352
548f567b1454 fixed #exposeEventPending
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2405
548f567b1454 fixed #exposeEventPending
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2406
    "Modified: / 15.9.1998 / 23:18:16 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2407
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2408
2010
5ac34bc91075 Move #isPopUpView to DisplayService (where #isView lives).
Stefan Vogel <sv@exept.de>
parents: 1960
diff changeset
  2409
isPopUpView
5ac34bc91075 Move #isPopUpView to DisplayService (where #isView lives).
Stefan Vogel <sv@exept.de>
parents: 1960
diff changeset
  2410
    "return true, if this view should be put on top (raised) automatically.
5ac34bc91075 Move #isPopUpView to DisplayService (where #isView lives).
Stefan Vogel <sv@exept.de>
parents: 1960
diff changeset
  2411
     usually this is true for alertBoxes etc."
5ac34bc91075 Move #isPopUpView to DisplayService (where #isView lives).
Stefan Vogel <sv@exept.de>
parents: 1960
diff changeset
  2412
5ac34bc91075 Move #isPopUpView to DisplayService (where #isView lives).
Stefan Vogel <sv@exept.de>
parents: 1960
diff changeset
  2413
    ^ false
5ac34bc91075 Move #isPopUpView to DisplayService (where #isView lives).
Stefan Vogel <sv@exept.de>
parents: 1960
diff changeset
  2414
5ac34bc91075 Move #isPopUpView to DisplayService (where #isView lives).
Stefan Vogel <sv@exept.de>
parents: 1960
diff changeset
  2415
    "Created: / 22.1.1998 / 15:01:32 / stefan"
5ac34bc91075 Move #isPopUpView to DisplayService (where #isView lives).
Stefan Vogel <sv@exept.de>
parents: 1960
diff changeset
  2416
!
5ac34bc91075 Move #isPopUpView to DisplayService (where #isView lives).
Stefan Vogel <sv@exept.de>
parents: 1960
diff changeset
  2417
920
7b596ce23e01 added #isRootView
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  2418
isRootView
7b596ce23e01 added #isRootView
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  2419
    "return true, if the receiver is a root view
7b596ce23e01 added #isRootView
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  2420
     false is returned here, this is only redefined in DisplayRootView."
7b596ce23e01 added #isRootView
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  2421
7b596ce23e01 added #isRootView
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  2422
    ^ false
7b596ce23e01 added #isRootView
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  2423
7b596ce23e01 added #isRootView
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  2424
    "Modified: 28.5.1996 / 19:27:34 / cg"
7b596ce23e01 added #isRootView
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  2425
    "Created: 5.7.1996 / 14:58:55 / cg"
7b596ce23e01 added #isRootView
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  2426
!
7b596ce23e01 added #isRootView
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  2427
1481
335881213805 added #isTopView query
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  2428
isTopView
335881213805 added #isTopView query
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  2429
    "return true, if the receiver is some kind of topview;
335881213805 added #isTopView query
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  2430
     false is returned here; redefined in some subclasses."
335881213805 added #isTopView query
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  2431
335881213805 added #isTopView query
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  2432
    ^ false
335881213805 added #isTopView query
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  2433
335881213805 added #isTopView query
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  2434
    "Modified: 28.5.1996 / 19:27:34 / cg"
335881213805 added #isTopView query
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  2435
    "Created: 22.3.1997 / 14:45:29 / cg"
335881213805 added #isTopView query
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  2436
!
335881213805 added #isTopView query
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  2437
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2438
isView
734
1a778cedbbf5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 727
diff changeset
  2439
    "return true, if the receiver is some kind of view;
1a778cedbbf5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 727
diff changeset
  2440
     true is returned here."
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2441
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2442
    ^ true
734
1a778cedbbf5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 727
diff changeset
  2443
1a778cedbbf5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 727
diff changeset
  2444
    "Modified: 28.5.1996 / 19:27:34 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2445
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2446
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2447
redrawsFull
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2448
    ^ false
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2449
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2450
    "Created: 4.3.1996 / 14:17:22 / cg"
3674
2d18a78198af getKeyBoardFocus
Stefan Vogel <sv@exept.de>
parents: 3639
diff changeset
  2451
!
2d18a78198af getKeyBoardFocus
Stefan Vogel <sv@exept.de>
parents: 3639
diff changeset
  2452
2d18a78198af getKeyBoardFocus
Stefan Vogel <sv@exept.de>
parents: 3639
diff changeset
  2453
shown
2d18a78198af getKeyBoardFocus
Stefan Vogel <sv@exept.de>
parents: 3639
diff changeset
  2454
    "return true if at least a part of myself is currently visible
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2455
     (I am mapped and not completely covered).
3674
2d18a78198af getKeyBoardFocus
Stefan Vogel <sv@exept.de>
parents: 3639
diff changeset
  2456
     Assumed that I am always visible when realized."
2d18a78198af getKeyBoardFocus
Stefan Vogel <sv@exept.de>
parents: 3639
diff changeset
  2457
2d18a78198af getKeyBoardFocus
Stefan Vogel <sv@exept.de>
parents: 3639
diff changeset
  2458
    ^ realized
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2459
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2460
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2461
!DisplaySurface methodsFor:'queries-contents'!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2462
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2463
heightOfContents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2464
    "return the height of the contents in pixels.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2465
     Since we dont know here, just return the views size.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2466
     This will make your scrollbars show 100%-visible.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2467
     Must be redefined in subviews to make scrollbars really work."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2468
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2469
    ^ self height
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2470
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2471
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2472
widthOfContents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2473
    "return the width of the contents in pixels.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2474
     Since we dont know here, just return the views size.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2475
     This will make your scrollbars show 100%-visible.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2476
     Must be redefined in subviews to make scrollbars really work."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2477
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2478
    ^ self width
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2479
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2480
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2481
xOriginOfContents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2482
    "return the x-origin of the contents in pixels.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2483
     Since we dont know here, just return 0 for left.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2484
     Must be redefined in subviews to make scrollbars really work."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2485
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2486
    ^ 0
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2487
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2488
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2489
yOriginOfContents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2490
    "return the y-origin of the contents in pixels.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2491
     Since we dont know here, just return 0 for top.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2492
     Must be redefined in subviews to make scrollbars really work."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2493
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2494
    ^ 0
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2495
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2496
3276
9ed39f7e7282 category change
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  2497
!DisplaySurface methodsFor:'user interaction & notifications'!
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2498
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2499
beep
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2500
    "output an audible beep or bell on my screen device"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2501
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2502
    device beep; flush
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2503
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2504
    "Created: 28.5.1996 / 16:16:13 / cg"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2505
    "Modified: 28.5.1996 / 16:58:25 / cg"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2506
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2507
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2508
showActivity:aMessage
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2509
    "this is sent indirectly by the activityNotification mechanism.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2510
     Defined here as a fallback, if ever sent to non topviews."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2511
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2512
    Transcript showCR:aMessage
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2513
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2514
    "Modified: 18.5.1996 / 15:44:33 / cg"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2515
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2516
1093
18ea3ccf5d2f category rename
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
  2517
!DisplaySurface class methodsFor:'documentation'!
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2518
6710
6ce1df2b8b60 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6692
diff changeset
  2519
version
6937
1acef4941601 #FEATURE
Stefan Vogel <sv@exept.de>
parents: 6828
diff changeset
  2520
    ^ '$Header$'
6710
6ce1df2b8b60 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6692
diff changeset
  2521
!
6ce1df2b8b60 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6692
diff changeset
  2522
5458
f7eb9d9c7e8d comment/format in:5 methods
Claus Gittinger <cg@exept.de>
parents: 5344
diff changeset
  2523
version_CVS
6937
1acef4941601 #FEATURE
Stefan Vogel <sv@exept.de>
parents: 6828
diff changeset
  2524
    ^ '$Header$'
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2525
! !
3791
a9342b99295c Fix clipboard handling.
Stefan Vogel <sv@exept.de>
parents: 3699
diff changeset
  2526
6063
8a24160002a1 refactored
Claus Gittinger <cg@exept.de>
parents: 5961
diff changeset
  2527
3211
0669c01aa5a5 removeKey:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
  2528
DisplaySurface initialize!