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