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