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