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