DisplaySurface.st
author Stefan Vogel <sv@exept.de>
Tue, 28 Apr 2020 15:28:14 +0200
changeset 9038 dd177fea6408
parent 9010 652d7158a60e
permissions -rw-r--r--
#REFACTORING by stefan class: Font changed: #setFamily:face:style:size:sizeUnit:encoding:device:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8964
7ab1983c012d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8936
diff changeset
     1
"{ Encoding: utf8 }"
7ab1983c012d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8936
diff changeset
     2
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
 COPYRIGHT (c) 1992 by Claus Gittinger
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
     5
              All Rights Reserved
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 This software is furnished under a license and may be used
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 only in accordance with the terms of that license and with the
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 inclusion of the above copyright notice.   This software may not
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 be provided or otherwise made available to, or used by, any
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
 other person.  No title to or ownership of the software is
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
 hereby transferred.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
"
3211
0669c01aa5a5 removeKey:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
    14
"{ Package: 'stx:libview' }"
0669c01aa5a5 removeKey:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
    15
6770
207aa3bfe95e class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6710
diff changeset
    16
"{ NameSpace: Smalltalk }"
207aa3bfe95e class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6710
diff changeset
    17
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
GraphicsMedium subclass:#DisplaySurface
8349
1a56a0337599 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8259
diff changeset
    19
	instanceVariableNames:'viewBackground cursor eventMask moreAttributes renderer uuid
1a56a0337599 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8259
diff changeset
    20
		backed flags delegate updateRegion'
1a56a0337599 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8259
diff changeset
    21
	classVariableNames:'GotExposeFlagMask SaveUnderFlagMask'
1a56a0337599 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8259
diff changeset
    22
	poolDictionaries:''
1a56a0337599 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8259
diff changeset
    23
	category:'Graphics-Support'
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
1093
18ea3ccf5d2f category rename
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
    26
!DisplaySurface class methodsFor:'documentation'!
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
copyright
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
 COPYRIGHT (c) 1992 by Claus Gittinger
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
    31
              All Rights Reserved
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
 This software is furnished under a license and may be used
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
 only in accordance with the terms of that license and with the
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
 inclusion of the above copyright notice.   This software may not
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
 be provided or otherwise made available to, or used by, any
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
 other person.  No title to or ownership of the software is
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
 hereby transferred.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
documentation
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
"
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
    44
    this abstract class describes stuff common to any Window on a display
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
    device. i.e. RootWindow, TopWindows, PopUps and Subwindows.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
    That is, they have a viewBackground, cursor etc. and especially events.
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
    47
    A special feature is the delegate field, which allows key- and button
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
    48
    events to be stolen from a view.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
    If the delegate is non-nil, these events will be sent to it instead.
8147
4451c94e3e41 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8081
diff changeset
    50
    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
    51
    for it. Also, controller functionality could be simulated using delegates.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
    [instance variables:]
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
7691
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
    55
        viewBackground  <Color|Form|Image>      the view's background
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
    56
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
    57
        cursor          <Cursor>                the cursor
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
    58
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
    59
        eventMask                               mask specifying the enabled
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
    60
                                                events.
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
    61
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
    62
        moreAttributes                          optional dictionary, allowing for more attributes
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
    63
                                                to be store there
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
    64
            fields:
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
    65
                middleButtonMenu                a fix popup menu for the middle button.
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
    66
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
    67
                keyCommands                     not yet supported
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
    68
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
    69
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
    70
        backed                                  one of #always, #whenMapped or #never
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
    71
                                                corresponds to X's backing store mechanism.
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
    72
                                                May be ignored by other devices.
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
    73
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
    74
        flags                                   flag bits
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
    75
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
    76
            saveUnder                               bit 1; 1 if saveunder store for
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
    77
                                                            that view is enabled
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
    78
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
    79
            gotExpose                               bit 2; 1 if an expose/noExpose event arrived
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
    80
                                                            (for exposure handling after a scroll)
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
    81
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
    82
       delegate                                for event delegation
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
    [see also:]
7691
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
    85
        DeviceWorkstation
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
    86
        WindowGroup
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
    87
        StandardSYstemView SimpleView View
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
    [author:]
7691
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
    90
        Claus Gittinger
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
    94
!DisplaySurface class methodsFor:'initialization'!
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
    95
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
    96
initialize
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
    97
    SaveUnderFlagMask := 1.
5006
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
    98
    GotExposeFlagMask := 2.
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
    99
! !
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
   100
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
!DisplaySurface methodsFor:'accessing'!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
4050
f8ba83a13a08 new damage scheme
Claus Gittinger <cg@exept.de>
parents: 4046
diff changeset
   103
addUpdateRectangle:newRectangle
4052
5cd7eef42703 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4050
diff changeset
   104
    "return true, if the newRectangle is not already contained in the updateRegion
5cd7eef42703 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4050
diff changeset
   105
     (i.e. if it added any pixels to the region"
5cd7eef42703 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4050
diff changeset
   106
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   107
    |closure lastRect numRect lastTop lastBottom lastLeft lastRight
4391
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   108
     newTop newBottom newLeft newRight|
4050
f8ba83a13a08 new damage scheme
Claus Gittinger <cg@exept.de>
parents: 4046
diff changeset
   109
f8ba83a13a08 new damage scheme
Claus Gittinger <cg@exept.de>
parents: 4046
diff changeset
   110
    updateRegion isNil ifTrue:[
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   111
        updateRegion := OrderedCollection with:newRectangle.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   112
        ^ true
4050
f8ba83a13a08 new damage scheme
Claus Gittinger <cg@exept.de>
parents: 4046
diff changeset
   113
    ].
f8ba83a13a08 new damage scheme
Claus Gittinger <cg@exept.de>
parents: 4046
diff changeset
   114
    (updateRegion contains:[:oldRectangle | (newRectangle isContainedIn:oldRectangle)]) ifTrue:[
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   115
        ^ false.
4050
f8ba83a13a08 new damage scheme
Claus Gittinger <cg@exept.de>
parents: 4046
diff changeset
   116
    ].
4052
5cd7eef42703 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4050
diff changeset
   117
4391
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   118
    numRect := updateRegion size.
5564
3db1b17c4ac6 changed: #addUpdateRectangle:
Claus Gittinger <cg@exept.de>
parents: 5541
diff changeset
   119
    numRect > 20 ifTrue:[
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   120
        closure := updateRegion
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   121
                        inject:newRectangle
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   122
                        into:[:boundsSoFar :thisRectangle |
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   123
                                boundsSoFar quickMerge:thisRectangle
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   124
                             ].
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   125
        updateRegion := OrderedCollection with:closure.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   126
        ^ true
4050
f8ba83a13a08 new damage scheme
Claus Gittinger <cg@exept.de>
parents: 4046
diff changeset
   127
    ].
4052
5cd7eef42703 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4050
diff changeset
   128
4391
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   129
    lastRect := updateRegion at:numRect.
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   130
    lastTop := lastRect top.
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   131
    lastBottom := lastRect bottom.
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   132
    lastLeft := lastRect left.
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   133
    lastRight := lastRect right.
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   134
    newTop := newRectangle top.
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   135
    newBottom := newRectangle bottom.
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   136
    newLeft := newRectangle left.
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   137
    newRight := newRectangle right.
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   138
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   139
    lastTop = newTop ifTrue:[
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   140
        lastBottom = newBottom ifTrue:[
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   141
            lastLeft <= newLeft ifTrue:[
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   142
                lastRight >= newLeft ifTrue:[
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   143
                    updateRegion at:numRect put:(lastRect copy right:newRight).
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   144
                    ^ false "/ true
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   145
                ]
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   146
            ]
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   147
        ].
4391
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   148
    ].
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   149
    lastLeft = newLeft ifTrue:[
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   150
        lastRight = newRight ifTrue:[
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   151
            lastTop <= newTop ifTrue:[
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   152
                lastBottom >= newTop ifTrue:[
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   153
                    updateRegion at:numRect put:(lastRect copy bottom:newBottom).
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   154
                    ^ false "/ true
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   155
                ]
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   156
            ]
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   157
        ].
4391
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   158
    ].
7f646ac1b1ea expose rectangle merging
Claus Gittinger <cg@exept.de>
parents: 4291
diff changeset
   159
4050
f8ba83a13a08 new damage scheme
Claus Gittinger <cg@exept.de>
parents: 4046
diff changeset
   160
    updateRegion add:newRectangle.
f8ba83a13a08 new damage scheme
Claus Gittinger <cg@exept.de>
parents: 4046
diff changeset
   161
    ^ true
f8ba83a13a08 new damage scheme
Claus Gittinger <cg@exept.de>
parents: 4046
diff changeset
   162
!
f8ba83a13a08 new damage scheme
Claus Gittinger <cg@exept.de>
parents: 4046
diff changeset
   163
7977
9e4870e89390 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7879
diff changeset
   164
application
9e4870e89390 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7879
diff changeset
   165
    "to be redefined in real widgets.
9e4870e89390 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7879
diff changeset
   166
     Here nil is returned as fallback"
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
    ^ nil
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
    "Created: / 15-03-2017 / 10:42:10 / cg"
9e4870e89390 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7879
diff changeset
   171
!
9e4870e89390 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7879
diff changeset
   172
7868
3e020757bd33 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7844
diff changeset
   173
basicViewBackground:aColorOrFormOrViewBackground
3699
53cecc2349b2 added basicViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3685
diff changeset
   174
    "set the viewBackground to something, a color, image or form.
53cecc2349b2 added basicViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3685
diff changeset
   175
     The viewBackground is the color or pattern with which exposed
53cecc2349b2 added basicViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3685
diff changeset
   176
     regions are filled - do not confuse this with the drawing background
53cecc2349b2 added basicViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3685
diff changeset
   177
     color, which is used with opaque drawing."
53cecc2349b2 added basicViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3685
diff changeset
   178
7868
3e020757bd33 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7844
diff changeset
   179
    viewBackground ~~ aColorOrFormOrViewBackground ifTrue:[
3e020757bd33 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7844
diff changeset
   180
        viewBackground := aColorOrFormOrViewBackground.
3e020757bd33 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7844
diff changeset
   181
        self drawableId notNil ifTrue:[
3e020757bd33 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7844
diff changeset
   182
            self setViewBackground
3e020757bd33 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7844
diff changeset
   183
        ]
3699
53cecc2349b2 added basicViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3685
diff changeset
   184
    ]
7868
3e020757bd33 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7844
diff changeset
   185
3e020757bd33 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7844
diff changeset
   186
    "Modified (format): / 12-02-2017 / 12:57:07 / cg"
3699
53cecc2349b2 added basicViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3685
diff changeset
   187
!
53cecc2349b2 added basicViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3685
diff changeset
   188
4043
588a3b635b8a controller method;
Claus Gittinger <cg@exept.de>
parents: 4041
diff changeset
   189
controller
588a3b635b8a controller method;
Claus Gittinger <cg@exept.de>
parents: 4041
diff changeset
   190
    "return nil - I have no controller"
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
    ^ nil
588a3b635b8a controller method;
Claus Gittinger <cg@exept.de>
parents: 4041
diff changeset
   193
!
588a3b635b8a controller method;
Claus Gittinger <cg@exept.de>
parents: 4041
diff changeset
   194
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
depth
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
    "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
   197
     Notice, that this is currently the devices depth,
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
     but support for mixed depth views is being prepared.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
     (especially useful on SGI, with 24bit view)"
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
    ^ device depth
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
insideColor:aColor
7691
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   205
    "set the view's background color - ST-80 compatibility"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
    self viewBackground:aColor.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
    self background:aColor
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
2142
200b8ac20fa5 return devices standard keyboardMap as default when asked.
Claus Gittinger <cg@exept.de>
parents: 2129
diff changeset
   211
keyboardMap
200b8ac20fa5 return devices standard keyboardMap as default when asked.
Claus Gittinger <cg@exept.de>
parents: 2129
diff changeset
   212
    "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
   213
     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
   214
     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
   215
200b8ac20fa5 return devices standard keyboardMap as default when asked.
Claus Gittinger <cg@exept.de>
parents: 2129
diff changeset
   216
    ^ device keyboardMap
200b8ac20fa5 return devices standard keyboardMap as default when asked.
Claus Gittinger <cg@exept.de>
parents: 2129
diff changeset
   217
!
200b8ac20fa5 return devices standard keyboardMap as default when asked.
Claus Gittinger <cg@exept.de>
parents: 2129
diff changeset
   218
9010
652d7158a60e #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 8964
diff changeset
   219
monitorScaleFactor
652d7158a60e #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 8964
diff changeset
   220
    "answer the os scale factor for the current monitor of his view,
652d7158a60e #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 8964
diff changeset
   221
     regardless if the app is high dpi aware or not.
652d7158a60e #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 8964
diff changeset
   222
652d7158a60e #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 8964
diff changeset
   223
     this is the scale factor the user did enter in the os settings,
652d7158a60e #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 8964
diff changeset
   224
     for e.g. the user can choose between 100, 125, 150 etc.
652d7158a60e #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 8964
diff changeset
   225
     here we return 1, 1.25 1.5"
652d7158a60e #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 8964
diff changeset
   226
652d7158a60e #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 8964
diff changeset
   227
    ^ device monitorScaleFactorForView:self
652d7158a60e #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 8964
diff changeset
   228
!
652d7158a60e #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 8964
diff changeset
   229
5541
355263416a66 preps for renderer
Claus Gittinger <cg@exept.de>
parents: 5458
diff changeset
   230
renderer
355263416a66 preps for renderer
Claus Gittinger <cg@exept.de>
parents: 5458
diff changeset
   231
    "warning: this is experimental and not yet implemented"
355263416a66 preps for renderer
Claus Gittinger <cg@exept.de>
parents: 5458
diff changeset
   232
    ^ renderer
355263416a66 preps for renderer
Claus Gittinger <cg@exept.de>
parents: 5458
diff changeset
   233
!
355263416a66 preps for renderer
Claus Gittinger <cg@exept.de>
parents: 5458
diff changeset
   234
355263416a66 preps for renderer
Claus Gittinger <cg@exept.de>
parents: 5458
diff changeset
   235
renderer:something
355263416a66 preps for renderer
Claus Gittinger <cg@exept.de>
parents: 5458
diff changeset
   236
    "warning: this is experimental and not yet implemented"
355263416a66 preps for renderer
Claus Gittinger <cg@exept.de>
parents: 5458
diff changeset
   237
    renderer := something.
355263416a66 preps for renderer
Claus Gittinger <cg@exept.de>
parents: 5458
diff changeset
   238
!
355263416a66 preps for renderer
Claus Gittinger <cg@exept.de>
parents: 5458
diff changeset
   239
4221
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
   240
sensor
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   241
    "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
   242
     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
   243
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
   244
    ^ SynchronousWindowSensor new
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
   245
!
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
   246
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   247
setViewBackground
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   248
    "install the viewBackground for the receiver on the device"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   249
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   250
    |id devBgPixmap bgPixmap w h colorMap
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
   251
     pixmapDepth deviceDepth defBG|
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   252
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
   253
    self drawableId notNil ifTrue:[
7631
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   254
        viewBackground isColor ifTrue:[
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   255
            viewBackground := viewBackground onDevice:self graphicsDevice.
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   256
            id := viewBackground colorId.
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   257
            "
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   258
             a real color (i.e. one supported by the device) ?
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   259
            "
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   260
            id notNil ifTrue:[
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   261
                self graphicsDevice setWindowBackground:id in:self drawableId.
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   262
                ^ self
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   263
            ].
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   264
            "
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   265
             no, a dithered one - must have a dither-pattern
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   266
             (which is ready for the device, since viewBackground
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   267
              is already assigned to the device)
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   268
            "
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   269
            bgPixmap := viewBackground ditherForm.
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   270
        ] ifFalse:[
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   271
            viewBackground notNil ifTrue:[
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   272
                viewBackground isViewBackground ifTrue:[
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   273
                    ^ self.
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
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   276
                "
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   277
                 assume, it can convert itself to a form
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   278
                "
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   279
                bgPixmap := viewBackground asFormOn:self graphicsDevice.
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   280
                bgPixmap isNil ifTrue:[
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   281
                    "/ assume it knows how to draw itself
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   282
                    ^ self
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   283
                ].
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   284
            ].
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   285
        ].
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   286
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   287
        "
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   288
         must now have:
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   289
         a dithered color or bitmap or pixmap
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
        bgPixmap isNil ifTrue:[
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   292
            'DisplaySurface [warning]: background not convertable - ignored' errorPrintCR.
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   293
            ^ self
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   294
        ].
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   295
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   296
        "/ if the device does not support background pixmaps,
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   297
        "/ set the backgroundColor to the default background.
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   298
        "/ this will avoid flicker in win32 systems,
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   299
        "/ since that background is drawn directly in the
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   300
        "/ devices expose event handling.
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   301
        "/ (in contrast, the pixmap filling is done by the
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   302
        "/ window itself in its expose event handler)
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   303
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   304
        (self graphicsDevice supportsViewBackgroundPixmap:bgPixmap) ifFalse:[
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   305
            defBG := View defaultViewBackgroundColor.
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   306
            defBG isColor ifTrue:[
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   307
                defBG := defBG onDevice:self graphicsDevice.
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   308
                id := defBG colorId.
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   309
                id notNil ifTrue:[
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   310
                    self graphicsDevice setWindowBackground:id in:self drawableId.
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   311
                ].
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   312
            ].
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   313
            ^ self
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   314
        ].
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   315
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   316
        w := bgPixmap width.
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   317
        h := bgPixmap height.
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   318
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   319
        deviceDepth := self depth.
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   320
        pixmapDepth := bgPixmap depth.
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   321
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   322
        (pixmapDepth ~~ deviceDepth) ifTrue:[
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   323
            (pixmapDepth ~~ 1) ifTrue:[
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   324
                '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
   325
                ^ self
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   326
            ].
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   327
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   328
            "
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   329
             convert it into a deep form
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   330
            "
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   331
            colorMap := bgPixmap colorMap.
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   332
            devBgPixmap := Form width:w height:h depth:deviceDepth onDevice:self graphicsDevice.
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   333
            devBgPixmap isNil ifTrue:[
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   334
                'DisplaySurface [warning]: could not create a device form for viewBackground' infoPrintCR.
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   335
                ^ self
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   336
            ].
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   337
            devBgPixmap paint:(colorMap at:1).
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   338
            devBgPixmap fillRectangleX:0 y:0 width:w height:h.
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   339
            devBgPixmap foreground:(colorMap at:2) background:(colorMap at:1).
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   340
            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
   341
            bgPixmap := devBgPixmap.
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   342
        ] ifFalse:[
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   343
            (pixmapDepth == 1) ifTrue:[
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
                 although depth matches,
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   346
                 values in the dither are to be interpreted via the ditherForms
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   347
                 colormap, which is not always the same as blackpixel/whitepixel ...
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   348
                "
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   349
                colorMap := bgPixmap colorMap.
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   350
                (colorMap at:1) colorId == self graphicsDevice whitepixel ifTrue:[
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   351
                    (colorMap at:2) colorId == self graphicsDevice blackpixel ifTrue:[
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   352
                        "
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   353
                         ok, can use it
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
                        self graphicsDevice setWindowBackgroundPixmap:(bgPixmap drawableId) in:self drawableId.
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   356
                        ^ self
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   357
                    ]
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   358
                ].
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   359
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   360
                "
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   361
                 no, must invert it
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   362
                "
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   363
                devBgPixmap := Form width:w height:h depth:deviceDepth onDevice:self graphicsDevice.
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   364
                devBgPixmap paint:(colorMap at:2) on:(colorMap at:1).
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   365
                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
   366
                bgPixmap := devBgPixmap.
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   367
            ]
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   368
        ].
160dcb3fcc2e #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7616
diff changeset
   369
        self graphicsDevice setWindowBackgroundPixmap:(bgPixmap drawableId) in:self drawableId.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   370
    ]
1134
520b75563476 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1133
diff changeset
   371
5686
03868cc7d82a changed: #setViewBackground
Claus Gittinger <cg@exept.de>
parents: 5565
diff changeset
   372
    "Modified: / 23-01-2011 / 01:44:38 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   373
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   374
4041
7f4ec0d373f3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   375
updateRegion
7f4ec0d373f3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   376
    ^ updateRegion
7f4ec0d373f3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   377
!
7f4ec0d373f3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   378
7f4ec0d373f3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   379
updateRegion:something
7f4ec0d373f3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   380
    updateRegion := something.
7f4ec0d373f3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   381
!
7f4ec0d373f3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
   382
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   383
viewBackground
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   384
    "return the viewBackground"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   385
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   386
    ^ viewBackground
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
7868
3e020757bd33 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7844
diff changeset
   389
viewBackground:aColorOrFormOrViewBackground
727
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
     The viewBackground is the color or pattern with which exposed
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   392
     regions are filled - do not confuse this with the drawing background
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   393
     color, which is used with opaque drawing."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   394
7868
3e020757bd33 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7844
diff changeset
   395
    viewBackground ~~ aColorOrFormOrViewBackground ifTrue:[
3e020757bd33 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7844
diff changeset
   396
        self basicViewBackground:aColorOrFormOrViewBackground
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   397
    ]
7868
3e020757bd33 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7844
diff changeset
   398
3e020757bd33 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7844
diff changeset
   399
    "Modified (format): / 12-02-2017 / 12:57:01 / cg"
727
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
viewBackgroundAndClear:something
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   403
    "set the viewBackground to something, a color, image or form.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   404
     and clear the View.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   405
     The viewBackground is the color or pattern with which exposed
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   406
     regions are filled - do not confuse this with the drawing background
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   407
     color, which is used with opaque drawing."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   408
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   409
    self viewBackground:something.
4070
efd0ffb52d43 clear -> clearView
Claus Gittinger <cg@exept.de>
parents: 4052
diff changeset
   410
    self clearView.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   411
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   412
    "Created: 27.4.1996 / 14:09:08 / cg"
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
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   415
viewGravity
7691
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   416
    "return the view's gravity"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   417
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   418
    ^ #NorthWest
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   419
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   420
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   421
viewOrigin
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   422
    "0@0 here, since by default we cannot be scrolled"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   423
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   424
    ^ 0 @ 0
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   425
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   426
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   427
widget
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   428
    "ST-80 compatibility"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   429
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   430
    ^ self
4221
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
   431
!
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
   432
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
   433
windowClass:classString name:nameString
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
   434
    gc windowClass:classString name:nameString.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
   435
!
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
   436
4221
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
   437
windowGroup
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
   438
    "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
   439
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
   440
    ^ nil
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
   441
!
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
   442
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
   443
windowName:aString
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
   444
    gc windowName:aString.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   445
! !
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
!DisplaySurface methodsFor:'accessing-cursor'!
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
cursor
7691
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   450
    "return the view's cursor"
727
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
    ^ cursor
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   453
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   454
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   455
cursor:aCursor
7691
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   456
    "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
   457
     the mouse-pointer enters the receiver.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   458
     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
   459
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   460
    self cursor:aCursor now:true
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
     |v|
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   464
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   465
     v := View new.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   466
     v cursor:(Cursor wait).
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   467
     v open.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   468
     [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
   469
     [v shown] whileTrue:[
7691
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   470
        (Delay forSeconds:1) wait.
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   471
        v cursor:(Cursor normal).
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   472
        (Delay forSeconds:1) wait.
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   473
        v cursor:(Cursor wait).
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   474
     ]
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   475
    "
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   476
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   477
    "Modified: 14.12.1995 / 21:28:14 / cg"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   478
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   479
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   480
cursor:aCursor now:showImmediately
7691
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   481
    "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
   482
     the mouse-pointer enters the receiver.
7691
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   483
     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
   484
     The showImmediately parameter controls if the request is to be buffered,
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   485
     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
   486
     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
   487
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   488
    aCursor notNil ifTrue:[
7691
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   489
        (aCursor ~~ cursor) ifTrue:[
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   490
            cursor := aCursor.
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   491
            self drawableId notNil ifTrue:[
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   492
                self setCursor.
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   493
                (showImmediately and:[realized]) ifTrue:[
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   494
                    "flush, to make cursor immediately visible"
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   495
                    self flush
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   496
                ]
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   497
            ]
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   498
        ]
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   499
    ]
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
     |v|
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   503
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   504
     v := View new.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   505
     v cursor:(Cursor wait).
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   506
     v open.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   507
     [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
   508
     [v shown] whileTrue:[
7691
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   509
        (Delay forSeconds:1) wait.
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   510
        v cursor:(Cursor normal).
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   511
        (Delay forSeconds:1) wait.
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   512
        v cursor:(Cursor wait).
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   513
     ]
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   514
    "
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   515
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   516
    "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
   517
    "Modified: 28.3.1997 / 13:47:58 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   518
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   519
1960
aa9ef6e21f15 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1907
diff changeset
   520
setCursor
aa9ef6e21f15 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1907
diff changeset
   521
    |id|
aa9ef6e21f15 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1907
diff changeset
   522
6226
cdb753921735 class: DisplaySurface
Stefan Vogel <sv@exept.de>
parents: 6094
diff changeset
   523
    cursor isNil ifTrue:[ ^ self].
7268
88e9d56a0dd1 device access
Claus Gittinger <cg@exept.de>
parents: 7067
diff changeset
   524
    cursor := cursor onDevice:device.
6226
cdb753921735 class: DisplaySurface
Stefan Vogel <sv@exept.de>
parents: 6094
diff changeset
   525
    cursor isNil ifTrue:[ ^ self].
cdb753921735 class: DisplaySurface
Stefan Vogel <sv@exept.de>
parents: 6094
diff changeset
   526
cdb753921735 class: DisplaySurface
Stefan Vogel <sv@exept.de>
parents: 6094
diff changeset
   527
    id := cursor id.
cdb753921735 class: DisplaySurface
Stefan Vogel <sv@exept.de>
parents: 6094
diff changeset
   528
    id isNil ifTrue:[
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   529
        'DisplaySurface [warning]: nil cursorId ignored; shape=' errorPrint.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   530
        cursor shape errorPrintCR.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   531
        ^ self.
6226
cdb753921735 class: DisplaySurface
Stefan Vogel <sv@exept.de>
parents: 6094
diff changeset
   532
    ].
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
   533
    gc setCursorId:id .
1960
aa9ef6e21f15 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1907
diff changeset
   534
!
aa9ef6e21f15 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1907
diff changeset
   535
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   536
withCursor:aCursor do:aBlock
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   537
    "evaluate aBlock showing aCursor until ready; then restore the old cursor
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   538
     and return the value as returned by aBlock.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   539
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   540
     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
   541
     Most applications want to have the cursor changed in all of its views.
00e2cfdfd7bc commentary
Claus Gittinger <cg@exept.de>
parents: 1332
diff changeset
   542
     Use 'aView windowGroup withCursor:do:' or 'aView topView withCursor:do:'
8254
456f5eb842de #DOCUMENTATION by mawalch
mawalch
parents: 8219
diff changeset
   543
     to accomplish this."
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   544
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   545
    |savedCursor|
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   546
1388
ba20e718d36f withCursor:do: - better behavior if change has no effect
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
   547
    cursor == aCursor ifTrue:[
7702
2c1397577aa2 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
   548
        ^ aBlock value
1388
ba20e718d36f withCursor:do: - better behavior if change has no effect
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
   549
    ].
ba20e718d36f withCursor:do: - better behavior if change has no effect
Claus Gittinger <cg@exept.de>
parents: 1342
diff changeset
   550
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   551
    savedCursor := cursor.
7702
2c1397577aa2 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
   552
    ^ [
2c1397577aa2 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
   553
        self cursor:aCursor now:true.
2c1397577aa2 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
   554
        aBlock value
2c1397577aa2 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
   555
    ] ensure:[
2c1397577aa2 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
   556
        self cursor:savedCursor now:true
2c1397577aa2 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7691
diff changeset
   557
    ]
1337
00e2cfdfd7bc commentary
Claus Gittinger <cg@exept.de>
parents: 1332
diff changeset
   558
8254
456f5eb842de #DOCUMENTATION by mawalch
mawalch
parents: 8219
diff changeset
   559
    "Modified: / 27-02-1997 / 17:20:43 / cg"
456f5eb842de #DOCUMENTATION by mawalch
mawalch
parents: 8219
diff changeset
   560
    "Modified (comment): / 17-01-2018 / 15:18:35 / mawalch"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   561
!
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
withExecuteCursorDo:aBlock
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   564
    "evaluate aBlock while showing an execute cursor in all my views.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   565
     Return the value as returned by aBlock."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   566
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   567
    ^ self withCursor:(Cursor execute) do:aBlock
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   568
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   569
    "Created: 10.1.1996 / 13:53:03 / cg"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   570
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   571
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   572
withReadCursorDo:aBlock
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   573
    "evaluate aBlock while showing a readCursor in all my views.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   574
     Return the value as returned by aBlock."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   575
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   576
    ^ self withCursor:(Cursor read) do:aBlock
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   577
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   578
    "Modified: 14.12.1995 / 20:57:40 / cg"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   579
    "Created: 10.1.1996 / 13:52:52 / cg"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   580
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   581
5565
a6553baf9dab added: #withVisibleCursor:do:
Stefan Vogel <sv@exept.de>
parents: 5564
diff changeset
   582
withVisibleCursor:aCursor do:aBlock
a6553baf9dab added: #withVisibleCursor:do:
Stefan Vogel <sv@exept.de>
parents: 5564
diff changeset
   583
    "evaluate aBlock, showing a aCursor.
a6553baf9dab added: #withVisibleCursor:do:
Stefan Vogel <sv@exept.de>
parents: 5564
diff changeset
   584
     Return the value of aBlock.
6815
03d7b8152454 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6805
diff changeset
   585
     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
   586
     (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
   587
      show the execute cursor for some time as a feedback)."
5565
a6553baf9dab added: #withVisibleCursor:do:
Stefan Vogel <sv@exept.de>
parents: 5564
diff changeset
   588
a6553baf9dab added: #withVisibleCursor:do:
Stefan Vogel <sv@exept.de>
parents: 5564
diff changeset
   589
    |ret|
a6553baf9dab added: #withVisibleCursor:do:
Stefan Vogel <sv@exept.de>
parents: 5564
diff changeset
   590
5783
92696252bc47 changed: #withVisibleCursor:do:
Claus Gittinger <cg@exept.de>
parents: 5773
diff changeset
   591
    cursor == aCursor ifTrue:[
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   592
        ^ aBlock value
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
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
   595
    self
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   596
        withCursor:aCursor do:[
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   597
            |timeToExecute remainingShowTime|
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   598
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   599
            timeToExecute := Time millisecondsToRun:[ ret := aBlock value].
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   600
            remainingShowTime := UserPreferences current waitCursorVisibleTime - timeToExecute.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   601
            remainingShowTime > 0 ifTrue:[
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   602
                Delay waitForMilliseconds:remainingShowTime.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   603
            ].
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   604
        ].
5565
a6553baf9dab added: #withVisibleCursor:do:
Stefan Vogel <sv@exept.de>
parents: 5564
diff changeset
   605
    ^ ret.
5783
92696252bc47 changed: #withVisibleCursor:do:
Claus Gittinger <cg@exept.de>
parents: 5773
diff changeset
   606
92696252bc47 changed: #withVisibleCursor:do:
Claus Gittinger <cg@exept.de>
parents: 5773
diff changeset
   607
    "Modified (comment): / 12-09-2011 / 12:14:29 / cg"
5565
a6553baf9dab added: #withVisibleCursor:do:
Stefan Vogel <sv@exept.de>
parents: 5564
diff changeset
   608
!
a6553baf9dab added: #withVisibleCursor:do:
Stefan Vogel <sv@exept.de>
parents: 5564
diff changeset
   609
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   610
withWaitCursorDo:aBlock
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   611
    "evaluate aBlock while showing a waitCursor in all my views.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   612
     Return the value as returned by aBlock."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   613
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   614
    ^ self withCursor:(Cursor wait) do:aBlock
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
    "Created: 10.1.1996 / 13:51:08 / cg"
5923
f597b6554c31 added: #withWriteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
   617
!
f597b6554c31 added: #withWriteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
   618
f597b6554c31 added: #withWriteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
   619
withWriteCursorDo:aBlock
f597b6554c31 added: #withWriteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
   620
    "evaluate aBlock while showing a writeCursor in all my views.
f597b6554c31 added: #withWriteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
   621
     Return the value as returned by aBlock."
f597b6554c31 added: #withWriteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
   622
f597b6554c31 added: #withWriteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
   623
    ^ self withCursor:(Cursor write) do:aBlock
f597b6554c31 added: #withWriteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
   624
f597b6554c31 added: #withWriteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
   625
    "Modified: / 14-12-1995 / 20:57:40 / cg"
f597b6554c31 added: #withWriteCursorDo:
Claus Gittinger <cg@exept.de>
parents: 5783
diff changeset
   626
    "Created: / 27-07-2012 / 09:43:08 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   627
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   628
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   629
!DisplaySurface methodsFor:'accessing-hierarchy'!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   630
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   631
delegate
6396
1bd2ea6f2662 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6372
diff changeset
   632
    "return the delegate - that's the one getting keyboard and button events.
1bd2ea6f2662 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6372
diff changeset
   633
     See dispatchEvent:... method"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   634
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   635
    ^ delegate
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   636
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   637
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   638
delegate:someOne
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   639
    "set the delegate - keyboard- and button events will be forwarded to
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   640
     that object if it is interested in them.
6396
1bd2ea6f2662 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6372
diff changeset
   641
     See the dispatchEvent... method."
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   642
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   643
    delegate := someOne
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   644
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   645
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   646
superView
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   647
    "return the superView - nil here"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   648
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   649
    ^ nil
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   650
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   651
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   652
topComponent
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   653
    "return the topView - that the one with no superview"
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
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   656
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   657
    "Created: 9.5.1996 / 01:39:43 / cg"
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
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   660
topView
6642
f91982ecc2b6 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6558
diff changeset
   661
    "return the topView - that's the one with no superview"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   662
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   663
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   664
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   665
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   666
!DisplaySurface methodsFor:'accessing-limits'!
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
maxExtent
7691
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   669
    "return the view's maximum extent - this is nil here.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   670
     Only standardSystemViews support this."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   671
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   672
    ^ nil
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   673
!
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
maxExtent:extent
7691
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   676
    "set the view's maximum extent - ignored here.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   677
     Only standardSystemViews support this."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   678
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   679
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   680
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   681
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   682
minExtent
7691
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   683
    "return the view's minimum extent - this is nil here.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   684
     Only standardSystemViews support this."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   685
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   686
    ^ nil
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   687
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   688
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   689
minExtent:extent
7691
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   690
    "set the view's minimum extent - ignored here.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   691
     Only standardSystemViews support this."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   692
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   693
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   694
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   695
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   696
!DisplaySurface methodsFor:'accessing-misc'!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   697
8219
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   698
automationUUID
8597
4de00d0b9545 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 8543
diff changeset
   699
    "return my uuid (for automation and the polonium st/x capture/replay tool).
8219
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   700
     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
   701
     Will be the same for all instances 
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   702
     (i.e. the same in different instances of the application).
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   703
     Contrast this with the instanceUUID, which is unique for each view.
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
     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
   706
     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
   707
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   708
    uuid isNil ifTrue:[^ uuid].
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   709
    ^ uuid asUUID
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   710
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   711
    "
8597
4de00d0b9545 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 8543
diff changeset
   712
     Transcript topView automationUUID    
4de00d0b9545 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 8543
diff changeset
   713
     Transcript topView instanceUUID    
8219
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   714
    "
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
    "Created: / 09-11-2017 / 22:33:10 / cg"
8597
4de00d0b9545 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 8543
diff changeset
   717
    "Modified (comment): / 05-12-2018 / 17:50:03 / Stefan Vogel"
8219
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   718
!
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
automationUUID:aUuidOrUuidString
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   721
    "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
   722
     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
   723
     Will be the same for all instances 
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   724
     (i.e. the same in different instances of the application).
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   725
     Contrast this with the instanceUUID, which is unique for each view.
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   726
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   727
     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
   728
     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
   729
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   730
    uuid := aUuidOrUuidString
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   731
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   732
    "Created: / 09-11-2017 / 22:33:14 / cg"
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   733
!
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   734
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   735
backingStore:how
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   736
    "turn on/off backingStore (saving my pixels)
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   737
     how may true/false, but also #always, #whenMapped or #never."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   738
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   739
    how ~~ backed ifTrue:[
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   740
        backed := how.
8926
047e1f9eaeeb #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 8843
diff changeset
   741
        gc backingStore:how.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   742
    ]
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
eventMask
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   746
    "return a (numeric) mask of allowed events -
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   747
     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
   748
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   749
    ^ eventMask
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   750
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   751
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   752
eventMask:aMask
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   753
    "set a (numeric) mask of allowed events -
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   754
     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
   755
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   756
    eventMask := aMask
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   757
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   758
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   759
getKeyboardFocus
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   760
    "tell the Display to assign keyboard focus to the receiver"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   761
3674
2d18a78198af getKeyBoardFocus
Stefan Vogel <sv@exept.de>
parents: 3639
diff changeset
   762
    self shown ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
   763
        device setInputFocusTo:self drawableId.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   764
    ].
2512
f7c7f082e65b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2509
diff changeset
   765
f7c7f082e65b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2509
diff changeset
   766
    "Modified: / 15.3.1999 / 08:25:10 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   767
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   768
8219
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   769
instanceUUID
8216
5e3ca2c2a0c5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8158
diff changeset
   770
    "return my unique uuid.
5e3ca2c2a0c5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8158
diff changeset
   771
     This will be assigned once and only once per instance
5e3ca2c2a0c5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8158
diff changeset
   772
     (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
   773
      have different instanceUUIDs)"
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
    |id|
5e3ca2c2a0c5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8158
diff changeset
   776
8219
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   777
    (id := self getAttribute:#instanceUUID) isNil ifTrue:[
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   778
        self setAttribute:#instanceUUID to:(id := UUID new).
8216
5e3ca2c2a0c5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8158
diff changeset
   779
    ].
5e3ca2c2a0c5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8158
diff changeset
   780
    ^ id
5e3ca2c2a0c5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8158
diff changeset
   781
5e3ca2c2a0c5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8158
diff changeset
   782
    "
5e3ca2c2a0c5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8158
diff changeset
   783
     Transcript topView getAttribute:#instanceUuid    
5e3ca2c2a0c5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8158
diff changeset
   784
     Transcript topView instanceUuid    
5e3ca2c2a0c5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8158
diff changeset
   785
    "
5e3ca2c2a0c5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8158
diff changeset
   786
8219
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   787
    "Created: / 09-11-2017 / 22:32:07 / cg"
8216
5e3ca2c2a0c5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8158
diff changeset
   788
!
5e3ca2c2a0c5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8158
diff changeset
   789
781
6a02db3a260a renamed #inputOnly to #isInputOnly
Claus Gittinger <cg@exept.de>
parents: 734
diff changeset
   790
isInputOnly
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   791
    "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
   792
     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
   793
     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
   794
     others, which where never meant to work in such a setup.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   795
     (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
   796
     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
   797
     or on other plattforms."
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
    ^ false
781
6a02db3a260a renamed #inputOnly to #isInputOnly
Claus Gittinger <cg@exept.de>
parents: 734
diff changeset
   800
6a02db3a260a renamed #inputOnly to #isInputOnly
Claus Gittinger <cg@exept.de>
parents: 734
diff changeset
   801
    "Created: 1.6.1996 / 13:21:51 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   802
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   803
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   804
preferredDepth
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   805
    "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
   806
     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
   807
     This is experimental and may change/vanish - do not use it."
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
    ^ nil
8158
ee817507d40a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8147
diff changeset
   810
ee817507d40a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8147
diff changeset
   811
    "Modified (comment): / 01-09-2017 / 09:57:44 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   812
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   813
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   814
preferredVisual
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   815
    "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
   816
     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
   817
     This is experimental and may change/vanish - do not use it."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   818
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   819
    ^ nil
8158
ee817507d40a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8147
diff changeset
   820
ee817507d40a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8147
diff changeset
   821
    "Modified (comment): / 01-09-2017 / 09:57:49 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   822
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   823
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
   824
saveUnder
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
   825
    "return the saveUnder flag"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
   826
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
   827
    ^ flags bitTest:SaveUnderFlagMask
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
   828
!
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
   829
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   830
saveUnder:aBoolean
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   831
    "turn on/off saveUnder (saving pixels under myself)
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   832
     - used for temporary views (i.e. PopUps and ModalBoxes)"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   833
5006
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   834
    aBoolean ifTrue:[
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   835
        flags := flags bitOr:SaveUnderFlagMask.
5006
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   836
    ] ifFalse:[
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
   837
        flags := flags bitClear:SaveUnderFlagMask.
5006
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   838
    ].
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
   839
    gc saveUnder:aBoolean.
3859
a11d876ebc26 Fix #showAtPointer to take care of window manager title bars.
Stefan Vogel <sv@exept.de>
parents: 3856
diff changeset
   840
!
a11d876ebc26 Fix #showAtPointer to take care of window manager title bars.
Stefan Vogel <sv@exept.de>
parents: 3856
diff changeset
   841
a11d876ebc26 Fix #showAtPointer to take care of window manager title bars.
Stefan Vogel <sv@exept.de>
parents: 3856
diff changeset
   842
setPointerPosition:aRelativePoint
8467
0c1a2545c932 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8349
diff changeset
   843
    "set the pointer to aRelativePoint relative to the view's origin.
0c1a2545c932 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8349
diff changeset
   844
     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
   845
     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
   846
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
   847
    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
   848
a11d876ebc26 Fix #showAtPointer to take care of window manager title bars.
Stefan Vogel <sv@exept.de>
parents: 3856
diff changeset
   849
    "
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
   850
        Transcript setPointerPosition:Transcript extent // 2.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
   851
        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
   852
    "
8467
0c1a2545c932 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8349
diff changeset
   853
0c1a2545c932 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8349
diff changeset
   854
    "Modified (comment): / 14-09-2018 / 17:59:18 / Claus Gittinger"
8216
5e3ca2c2a0c5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8158
diff changeset
   855
!
5e3ca2c2a0c5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8158
diff changeset
   856
5e3ca2c2a0c5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8158
diff changeset
   857
uuid
8219
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   858
    <resource: #obsolete>
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   859
    ^ self automationUUID
8216
5e3ca2c2a0c5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8158
diff changeset
   860
5e3ca2c2a0c5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8158
diff changeset
   861
    "
5e3ca2c2a0c5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8158
diff changeset
   862
     Transcript topView uuid    
5e3ca2c2a0c5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8158
diff changeset
   863
     Transcript topView instanceUuid    
5e3ca2c2a0c5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8158
diff changeset
   864
    "
5e3ca2c2a0c5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8158
diff changeset
   865
8219
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   866
    "Modified: / 09-11-2017 / 22:33:24 / cg"
8216
5e3ca2c2a0c5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8158
diff changeset
   867
!
5e3ca2c2a0c5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8158
diff changeset
   868
8218
3ac6ec1931da #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8216
diff changeset
   869
uuid:aUuidOrUuidString
8219
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   870
    <resource: #obsolete>
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   871
    ^ self automationUUID:aUuidOrUuidString
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   872
2e7b11bcbcd8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8218
diff changeset
   873
    "Modified: / 09-11-2017 / 22:34:12 / cg"
727
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
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   876
!DisplaySurface methodsFor:'accessing-names'!
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
icon
7691
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   879
    "return the view's icon - 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
icon:aBitmap
7691
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   886
    "set the view's icon - 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
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   892
iconLabel
7691
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   893
    "return the view's icon label - this is nil here.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   894
     Only standardSystemViews support labels and icons."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   895
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   896
    ^ nil
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   897
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   898
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   899
iconLabel:aLabel
7691
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   900
    "set the view's icon label - ignored 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
    ^ self
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
1481
335881213805 added #isTopView query
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
   906
iconMask
7691
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   907
    "return the view's iconMask - this is nil here.
1481
335881213805 added #isTopView query
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
   908
     Only standardSystemViews may support labels and icons."
335881213805 added #isTopView query
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
   909
335881213805 added #isTopView query
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
   910
    ^ nil
335881213805 added #isTopView query
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
   911
!
335881213805 added #isTopView query
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
   912
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   913
iconView
7691
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   914
    "return the view's iconView - 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
iconView:aView
7691
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   921
    "set the view's icon view - 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
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   927
label
7691
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   928
    "return the view's label - this is nil here.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   929
     Only standardSystemViews support labels and icons."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   930
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   931
    ^ nil
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   932
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   933
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   934
label:aLabel
7691
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
   935
    "set the view's label - ignored here.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   936
     Only standardSystemViews support labels and icons."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   937
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   938
    ^ self
8724
561f7af71a49 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 8654
diff changeset
   939
!
561f7af71a49 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 8654
diff changeset
   940
561f7af71a49 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 8654
diff changeset
   941
label:aLabel iconLabel:iconLabel
561f7af71a49 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 8654
diff changeset
   942
    "set both the label and the iconLabel.
561f7af71a49 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 8654
diff changeset
   943
     Only standardSystemViews support labels and icons."
561f7af71a49 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 8654
diff changeset
   944
561f7af71a49 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 8654
diff changeset
   945
    self label:aLabel.
561f7af71a49 #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 8654
diff changeset
   946
    self iconLabel:iconLabel
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   947
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   948
5006
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   949
!DisplaySurface methodsFor:'accessing-private'!
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   950
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   951
clearGotExposeFlag
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   952
    "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
   953
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   954
    flags := flags bitClear:GotExposeFlagMask.
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   955
!
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   956
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   957
getAttribute:key
7556
941a3156585e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7473
diff changeset
   958
    "a place for additional attributes;
941a3156585e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7473
diff changeset
   959
     allows for non-instvar slots to be added"
941a3156585e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7473
diff changeset
   960
     
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   961
    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
   962
    ^ 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
   963
!
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   964
5006
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   965
gotExpose
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   966
    "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
   967
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   968
    ^ flags bitTest:GotExposeFlagMask.
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   969
!
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   970
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   971
setAttribute:key to:newValue
7556
941a3156585e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7473
diff changeset
   972
    "a place for additional attributes;
941a3156585e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7473
diff changeset
   973
     allows for non-instvar slots to be added"
941a3156585e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7473
diff changeset
   974
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   975
    newValue isNil ifTrue:[
7556
941a3156585e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7473
diff changeset
   976
        moreAttributes notNil ifTrue:[
941a3156585e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7473
diff changeset
   977
            moreAttributes removeKey:key ifAbsent:[].
941a3156585e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7473
diff changeset
   978
            moreAttributes := moreAttributes asNilIfEmpty
941a3156585e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7473
diff changeset
   979
        ]
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
   980
    ] ifFalse:[
7556
941a3156585e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7473
diff changeset
   981
        moreAttributes isNil ifTrue:[
941a3156585e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7473
diff changeset
   982
            moreAttributes := IdentityDictionary new.
941a3156585e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7473
diff changeset
   983
        ].
941a3156585e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7473
diff changeset
   984
        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
   985
    ].
5081
8902ec02fcea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5009
diff changeset
   986
!
8902ec02fcea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5009
diff changeset
   987
8902ec02fcea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5009
diff changeset
   988
setGotExposeFlag
8902ec02fcea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5009
diff changeset
   989
    "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
   990
8902ec02fcea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5009
diff changeset
   991
    flags := flags bitOr:GotExposeFlagMask.
5006
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
   992
! !
4969
f4adf8354162 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4890
diff changeset
   993
5136
f94308afc935 delegate check
Claus Gittinger <cg@exept.de>
parents: 5081
diff changeset
   994
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   995
!DisplaySurface methodsFor:'button menus'!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   996
5773
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
   997
getMiddleButtonMenu
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
   998
    "return the menu associated with the middle mouse button.
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
   999
     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
  1000
     but are configured from the outside. Nowadays, widgets provide their own menu
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
  1001
     or are configured using a menuHolder."
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1002
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1003
    ^ self getAttribute:#middleButtonMenu
5773
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
  1004
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
  1005
    "Created: / 07-07-2011 / 18:16:21 / cg"
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
  1006
!
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
  1007
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
  1008
middleButtonMenu
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
  1009
    "return the menu associated with the middle mouse button.
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
  1010
     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
  1011
     menu."
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
  1012
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
  1013
    ^ self getMiddleButtonMenu
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
  1014
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
  1015
    "Modified (comment): / 07-07-2011 / 18:18:28 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1016
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1017
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1018
middleButtonMenu:aMenu
5773
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
  1019
    "associate aMenu with the middle mouse button.
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
  1020
     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
  1021
     but are configured from the outside. Nowadays, widgets provide their own menu
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
  1022
     or are configured using a menuHolder."
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1023
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1024
    |oldMenu|
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1025
5773
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
  1026
    (oldMenu := self getMiddleButtonMenu) notNil ifTrue:[
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  1027
        oldMenu isArray ifFalse:[
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  1028
            oldMenu destroy
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  1029
        ]
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1030
    ].
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1031
    self setMiddleButtonMenu:aMenu
5740
21319eb4135f changed: #middleButtonMenu:
Claus Gittinger <cg@exept.de>
parents: 5686
diff changeset
  1032
5773
4812bae52047 added: #getMiddleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5740
diff changeset
  1033
    "Modified: / 07-07-2011 / 18:18:00 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1034
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1035
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1036
setMiddleButtonMenu:aMenu
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1037
    "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
  1038
     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
  1039
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1040
    self setAttribute:#middleButtonMenu to:aMenu
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1041
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1042
4283
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1043
!DisplaySurface methodsFor:'clipboard'!
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1044
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1045
getClipboardObject
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1046
    "return the object selection
8158
ee817507d40a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8147
diff changeset
  1047
     - 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
  1048
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1049
    ^ device getClipboardObjectFor:self drawableId.
4283
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1050
8158
ee817507d40a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8147
diff changeset
  1051
    "Modified: / 13-02-1997 / 13:18:50 / cg"
ee817507d40a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8147
diff changeset
  1052
    "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
  1053
!
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
getClipboardText
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1056
    "return the copyBuffers contents
8158
ee817507d40a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8147
diff changeset
  1057
     - 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
  1058
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1059
    ^ self getClipboardText:#clipboard
8158
ee817507d40a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8147
diff changeset
  1060
ee817507d40a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8147
diff changeset
  1061
    "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
  1062
!
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1063
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1064
getClipboardText:selectionBufferSymbol
8158
ee817507d40a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8147
diff changeset
  1065
    "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
  1066
     clipBoard buffers determined by selectionBufferSymbol, which should be one of:
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1067
        #clipboard
4283
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1068
     or:
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1069
        #selection.
4283
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1070
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1071
     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
  1072
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1073
    ^ device getClipboardText:selectionBufferSymbol for:self drawableId.
8158
ee817507d40a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8147
diff changeset
  1074
ee817507d40a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8147
diff changeset
  1075
    "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
  1076
!
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1077
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1078
getSelection
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1079
    <resource: #obsolete>
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1080
    self obsoleteMethodWarning:'use #getClipboardObject'.
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1081
    ^ self getClipboardObject
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
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1084
getTextSelection
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1085
    "return the copyBuffers contents
8158
ee817507d40a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8147
diff changeset
  1086
     - 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
  1087
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1088
    <resource: #obsolete>
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
    self obsoleteMethodWarning:'use #getClipboardText'.
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1091
    ^ self getClipboardText
8158
ee817507d40a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8147
diff changeset
  1092
ee817507d40a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8147
diff changeset
  1093
    "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
  1094
!
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1095
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1096
getTextSelection:selectionBufferSymbol
8158
ee817507d40a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8147
diff changeset
  1097
    "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
  1098
     clipBoard buffers determined by selectionBufferSymbol, which should be one of:
8158
ee817507d40a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8147
diff changeset
  1099
        #clipboard
4283
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1100
     or:
8158
ee817507d40a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8147
diff changeset
  1101
        #selection.
4283
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1102
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1103
     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
  1104
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1105
    <resource: #obsolete>
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
    self obsoleteMethodWarning:'#use getClipboardText:'.
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1108
    ^ self getClipboardText:selectionBufferSymbol
8158
ee817507d40a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8147
diff changeset
  1109
ee817507d40a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8147
diff changeset
  1110
    "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
  1111
!
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1112
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1113
setClipboardObject:something
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1114
    "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
  1115
     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
  1116
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1117
    device setClipboardObject:something ownerView:self.
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1118
!
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1119
7687
44e289d89461 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7655
diff changeset
  1120
setClipboardText:aString
4283
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1121
    "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
  1122
     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
  1123
7687
44e289d89461 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7655
diff changeset
  1124
    device setClipboardText:aString ownerView:self
44e289d89461 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7655
diff changeset
  1125
44e289d89461 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7655
diff changeset
  1126
    "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
  1127
!
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1128
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1129
setSelection:something
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1130
    "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
  1131
     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
  1132
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1133
    <resource: #obsolete>
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1134
4283
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1135
    self obsoleteMethodWarning:'use setClipboardObject:'.
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1136
    device setClipboardObject:something ownerView:self.
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1137
!
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1138
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1139
setTextSelection:something
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1140
    "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
  1141
     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
  1142
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1143
    <resource: #obsolete>
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1144
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1145
    self obsoleteMethodWarning:'use setClipboardText:'.
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1146
    device setClipboardText:something ownerView:self
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1147
! !
a0ff53c935c6 category change and obsolete method marking
Stefan Vogel <sv@exept.de>
parents: 4280
diff changeset
  1148
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1149
!DisplaySurface methodsFor:'drawing'!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1150
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1151
clearDeviceRectangleX:x y:y width:w height:h
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1152
    "clear a rectangular area to viewBackground -
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1153
     redefined since GraphicsMedium fills with background
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1154
     - not viewBackground as we want here."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1155
7020
a32d62ad31cd #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6959
diff changeset
  1156
    |oldPaint org patternOffsetX patternOffsetY|
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1157
7744
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1158
    (w <= 0 or:[h <= 0]) ifTrue:[^ self].
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1159
    
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1160
    gc isNil ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1161
        "nothing to clear"
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1162
        ^ self.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1163
    ].
7302
bc00d96fd11f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 7268
diff changeset
  1164
    viewBackground isNil ifTrue:[^ self]. "/ how can this happen?
bc00d96fd11f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 7268
diff changeset
  1165
2341
a7dc2588d6dc clearRectangle with pattern (viewBackgroundPixmap) for win95
Claus Gittinger <cg@exept.de>
parents: 2300
diff changeset
  1166
    viewBackground isColor ifFalse:[
6240
f38855c7fec3 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6226
diff changeset
  1167
        viewBackground isViewBackground ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1168
            oldPaint := self paint.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1169
            self 
7744
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1170
                paint:gc background;
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1171
                fillDeviceRectangleX:x y:y width:w height:h;
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1172
                paint:oldPaint.
6240
f38855c7fec3 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6226
diff changeset
  1173
            viewBackground fillRectangleX:x y:y width:w height:h in:self.
f38855c7fec3 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6226
diff changeset
  1174
            ^ self.
f38855c7fec3 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6226
diff changeset
  1175
        ].
f38855c7fec3 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6226
diff changeset
  1176
7473
f557f225192b #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7470
diff changeset
  1177
        org := self viewOrigin.
7020
a32d62ad31cd #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6959
diff changeset
  1178
        (device supportsMaskedDrawingWith:viewBackground) ifFalse:[
a32d62ad31cd #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6959
diff changeset
  1179
            "/ 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
  1180
            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
  1181
            ^ self.
a32d62ad31cd #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6959
diff changeset
  1182
        ].
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1183
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1184
        patternOffsetX := (org x rounded \\ viewBackground width).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1185
        patternOffsetY := (org y rounded \\ viewBackground height).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1186
        (patternOffsetX ~= 0 or:[patternOffsetY ~= 0]) ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1187
            (device supportsMaskedDrawingWithOffset:viewBackground) ifFalse:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1188
                "/ 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
  1189
                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
  1190
                ^ self.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1191
            ].
5458
f7eb9d9c7e8d comment/format in:5 methods
Claus Gittinger <cg@exept.de>
parents: 5344
diff changeset
  1192
        ].
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1193
        gc setDeviceMaskOriginX:patternOffsetX negated y:patternOffsetY negated.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1194
    ].
2341
a7dc2588d6dc clearRectangle with pattern (viewBackgroundPixmap) for win95
Claus Gittinger <cg@exept.de>
parents: 2300
diff changeset
  1195
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1196
    "
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1197
     fill in device coordinates - not logical coordinates
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1198
    "
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1199
    oldPaint := self paint.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1200
    self 
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1201
        paint:viewBackground;
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1202
        fillDeviceRectangleX:x y:y width:w height:h "with:viewBackground";
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1203
        paint:oldPaint.
2341
a7dc2588d6dc clearRectangle with pattern (viewBackgroundPixmap) for win95
Claus Gittinger <cg@exept.de>
parents: 2300
diff changeset
  1204
2632
e18b55db3e1e replaced supportdMaskedDrawing by a method which gets the
Claus Gittinger <cg@exept.de>
parents: 2525
diff changeset
  1205
    "Modified: / 4.5.1999 / 13:00:34 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1206
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1207
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1208
clearRectangleX:x y:y width:w height:h
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1209
    "clear a rectangular area to viewBackground -
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1210
     redefined since GraphicsMedium fills with background
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1211
     - not viewBackground as we want here."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1212
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1213
    |pX pY pW pH currentTransformation|
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1214
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1215
    currentTransformation := gc transformation.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1216
    currentTransformation notNil ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1217
        pX := currentTransformation applyToX:x.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1218
        pY := currentTransformation applyToY:y.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1219
        pW := currentTransformation applyScaleX:w.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1220
        pH := currentTransformation applyScaleY:h.
2341
a7dc2588d6dc clearRectangle with pattern (viewBackgroundPixmap) for win95
Claus Gittinger <cg@exept.de>
parents: 2300
diff changeset
  1221
    ] ifFalse:[
6692
939b2c5d4041 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6642
diff changeset
  1222
        pX := x.
939b2c5d4041 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6642
diff changeset
  1223
        pY := y.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1224
        pW := w.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1225
        pH := h.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1226
    ].
2341
a7dc2588d6dc clearRectangle with pattern (viewBackgroundPixmap) for win95
Claus Gittinger <cg@exept.de>
parents: 2300
diff changeset
  1227
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1228
    ^ 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
  1229
2393
247e70febb7d oops - clearDeviceRectangle may not be invoked with floats.
Claus Gittinger <cg@exept.de>
parents: 2356
diff changeset
  1230
    "Modified: / 30.10.1998 / 15:00:37 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1231
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1232
2660
c6a707b38caa generalized pattern filling (for w95)
Claus Gittinger <cg@exept.de>
parents: 2658
diff changeset
  1233
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
  1234
    "fill a rectangular area with some pattern.
5458
f7eb9d9c7e8d comment/format in:5 methods
Claus Gittinger <cg@exept.de>
parents: 5344
diff changeset
  1235
     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
  1236
     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
  1237
     Caller must ensure that aPixmap is really a form.
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1238
     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
  1239
         therefore it is actually not obsolete."
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1240
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1241
    |r b
2656
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1242
     pW "{ Class: SmallInteger }"
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1243
     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
  1244
     xR0
2656
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1245
     xR "{ Class: SmallInteger }"
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1246
     yR "{ Class: SmallInteger }"
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1247
     xE "{ Class: SmallInteger }"
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1248
     yE "{ Class: SmallInteger }"
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1249
     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
  1250
     offsX "{ Class: SmallInteger }"
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1251
     offsY "{ Class: SmallInteger }"
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1252
     oX "{ Class: SmallInteger }"
2660
c6a707b38caa generalized pattern filling (for w95)
Claus Gittinger <cg@exept.de>
parents: 2658
diff changeset
  1253
     oY "{ Class: SmallInteger }"|
2398
bc2e3e470efe fixed background filling in case of huge rectangle argument.
Claus Gittinger <cg@exept.de>
parents: 2393
diff changeset
  1254
2640
033824608132 oops - care for viewOrigin when manually drawing viewBackground
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1255
    x := xIn.
033824608132 oops - care for viewOrigin when manually drawing viewBackground
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1256
    y := yIn.
033824608132 oops - care for viewOrigin when manually drawing viewBackground
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1257
    w := wIn.
033824608132 oops - care for viewOrigin when manually drawing viewBackground
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1258
    h := hIn.
033824608132 oops - care for viewOrigin when manually drawing viewBackground
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1259
033824608132 oops - care for viewOrigin when manually drawing viewBackground
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1260
    x := x max:0.
033824608132 oops - care for viewOrigin when manually drawing viewBackground
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1261
    y := y max:0.
7744
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1262
    r := (xIn + w) min:width.
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1263
    b := (yIn + h) min:height.
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1264
2660
c6a707b38caa generalized pattern filling (for w95)
Claus Gittinger <cg@exept.de>
parents: 2658
diff changeset
  1265
    pW := aPixmap width.
c6a707b38caa generalized pattern filling (for w95)
Claus Gittinger <cg@exept.de>
parents: 2658
diff changeset
  1266
    pH := aPixmap height.
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1267
7470
b18bb9a0ed24 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7466
diff changeset
  1268
    oldClip := self deviceClippingBoundsOrNil.
2398
bc2e3e470efe fixed background filling in case of huge rectangle argument.
Claus Gittinger <cg@exept.de>
parents: 2393
diff changeset
  1269
    oldClip notNil ifTrue:[
7426
f8ae781a4a5f #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 7416
diff changeset
  1270
        x := x max:oldClip left.
f8ae781a4a5f #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 7416
diff changeset
  1271
        y := y max:oldClip top.
f8ae781a4a5f #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 7416
diff changeset
  1272
        r := r min:oldClip right.
f8ae781a4a5f #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 7416
diff changeset
  1273
        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
  1274
    ].
7744
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1275
    w := r-x.
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1276
    h := b-y.
2398
bc2e3e470efe fixed background filling in case of huge rectangle argument.
Claus Gittinger <cg@exept.de>
parents: 2393
diff changeset
  1277
2656
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1278
    yR := (y // pH) * pH.
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1279
    yE := y+h.
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1280
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1281
    yR >= yE ifTrue:[^ self].
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1282
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1283
    xR0 := (x // pW) * pW.
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1284
    xE := x+w.
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1285
6770
207aa3bfe95e class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6710
diff changeset
  1286
    xR0 >= xE ifTrue:[^ self].
2656
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1287
2660
c6a707b38caa generalized pattern filling (for w95)
Claus Gittinger <cg@exept.de>
parents: 2658
diff changeset
  1288
    aPixmap depth == 1 ifTrue:[
7744
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1289
        oldFg := gc foreground.
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1290
        oldBg := gc background.
7426
f8ae781a4a5f #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 7416
diff changeset
  1291
        (clrMap := aPixmap colorMap) notNil ifTrue:[
f8ae781a4a5f #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 7416
diff changeset
  1292
            bg := clrMap at:1.
f8ae781a4a5f #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 7416
diff changeset
  1293
            fg := clrMap at:2.
f8ae781a4a5f #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 7416
diff changeset
  1294
        ] ifFalse:[
f8ae781a4a5f #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 7416
diff changeset
  1295
            bg := self whiteColor.
f8ae781a4a5f #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 7416
diff changeset
  1296
            fg := self blackColor.
f8ae781a4a5f #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 7416
diff changeset
  1297
        ].
7744
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1298
        gc foreground:fg background:bg.
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1299
    ].
7470
b18bb9a0ed24 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7466
diff changeset
  1300
    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
  1301
5458
f7eb9d9c7e8d comment/format in:5 methods
Claus Gittinger <cg@exept.de>
parents: 5344
diff changeset
  1302
    offsX := (xR0 + pattOffs x) \\ pW.
f7eb9d9c7e8d comment/format in:5 methods
Claus Gittinger <cg@exept.de>
parents: 5344
diff changeset
  1303
    offsY := (yR + pattOffs y) \\ pH.
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1304
2656
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1305
    oY := offsY.
2632
e18b55db3e1e replaced supportdMaskedDrawing by a method which gets the
Claus Gittinger <cg@exept.de>
parents: 2525
diff changeset
  1306
    [yR < yE] whileTrue:[
7426
f8ae781a4a5f #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 7416
diff changeset
  1307
        xR := xR0.
f8ae781a4a5f #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 7416
diff changeset
  1308
        oX := offsX.
f8ae781a4a5f #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 7416
diff changeset
  1309
        [xR < xE] whileTrue:[
f8ae781a4a5f #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 7416
diff changeset
  1310
            self
f8ae781a4a5f #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 7416
diff changeset
  1311
                copyFrom:aPixmap
f8ae781a4a5f #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 7416
diff changeset
  1312
                x:oX y:oY
f8ae781a4a5f #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 7416
diff changeset
  1313
                toX:xR y:yR
f8ae781a4a5f #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 7416
diff changeset
  1314
                width:(pW - oX) height:(pH - oY)
f8ae781a4a5f #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 7416
diff changeset
  1315
                async:true.
f8ae781a4a5f #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 7416
diff changeset
  1316
            xR := xR + pW - oX.
f8ae781a4a5f #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 7416
diff changeset
  1317
            oX := 0.
f8ae781a4a5f #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 7416
diff changeset
  1318
        ].
f8ae781a4a5f #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 7416
diff changeset
  1319
        yR := yR + pH - oY.
f8ae781a4a5f #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 7416
diff changeset
  1320
        oY := 0.
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1321
    ].
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1322
2656
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1323
    oldFg notNil ifTrue:[
7744
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1324
        gc foreground:oldFg background:oldBg.
2656
c21d19544e16 care for pixel-offset within mask.
Claus Gittinger <cg@exept.de>
parents: 2654
diff changeset
  1325
    ].
7470
b18bb9a0ed24 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7466
diff changeset
  1326
    self deviceClippingBounds:oldClip.
2300
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1327
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1328
    "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
  1329
    "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
  1330
    "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
  1331
!
87306f56da51 ask device if bg-pixmaps are supported;
Claus Gittinger <cg@exept.de>
parents: 2196
diff changeset
  1332
2660
c6a707b38caa generalized pattern filling (for w95)
Claus Gittinger <cg@exept.de>
parents: 2658
diff changeset
  1333
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
  1334
    "fill a rectangular area with aPixmap.
5458
f7eb9d9c7e8d comment/format in:5 methods
Claus Gittinger <cg@exept.de>
parents: 5344
diff changeset
  1335
     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
  1336
     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
  1337
     Caller must ensure that the aPixmap is really a form.
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1338
     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
  1339
         therefore it is actually not obsolete."
2660
c6a707b38caa generalized pattern filling (for w95)
Claus Gittinger <cg@exept.de>
parents: 2658
diff changeset
  1340
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1341
    |pX pY nW nH currentTransformation|
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1342
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1343
    currentTransformation := gc transformation.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1344
    currentTransformation notNil ifTrue:[
7744
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1345
        pX := currentTransformation applyToX:x.
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1346
        pY := currentTransformation applyToY:y.
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1347
        nW := currentTransformation applyScaleX:w.
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1348
        nH := currentTransformation applyScaleY:h.
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1349
        nW < 0 ifTrue:[
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1350
              nW := nW abs.
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1351
              pX := pX - nW.
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1352
        ].
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1353
        nH < 0 ifTrue:[
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1354
              nH := nH abs.
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1355
              pY := pY - nH.
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1356
        ].
2654
f919ca08f450 fixed viewBackground filling for w95.
Claus Gittinger <cg@exept.de>
parents: 2640
diff changeset
  1357
    ] ifFalse:[
7744
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1358
        pX := x.
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1359
        pY := y.
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1360
        nW := w.
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1361
        nH := h.
2654
f919ca08f450 fixed viewBackground filling for w95.
Claus Gittinger <cg@exept.de>
parents: 2640
diff changeset
  1362
    ].
f919ca08f450 fixed viewBackground filling for w95.
Claus Gittinger <cg@exept.de>
parents: 2640
diff changeset
  1363
    pX := pX rounded.
f919ca08f450 fixed viewBackground filling for w95.
Claus Gittinger <cg@exept.de>
parents: 2640
diff changeset
  1364
    pY := pY rounded.
f919ca08f450 fixed viewBackground filling for w95.
Claus Gittinger <cg@exept.de>
parents: 2640
diff changeset
  1365
    nW := nW rounded.
f919ca08f450 fixed viewBackground filling for w95.
Claus Gittinger <cg@exept.de>
parents: 2640
diff changeset
  1366
    nH := nH rounded.
f919ca08f450 fixed viewBackground filling for w95.
Claus Gittinger <cg@exept.de>
parents: 2640
diff changeset
  1367
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1368
    self
7744
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1369
        fillDeviceRectangleWithPattern:aPixmap
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1370
        x:pX y:pY width:nW height:nH
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  1371
        patternOffset:pattOffs
2654
f919ca08f450 fixed viewBackground filling for w95.
Claus Gittinger <cg@exept.de>
parents: 2640
diff changeset
  1372
f919ca08f450 fixed viewBackground filling for w95.
Claus Gittinger <cg@exept.de>
parents: 2640
diff changeset
  1373
    "Modified: 4.6.1996 / 17:58:49 / cg"
f919ca08f450 fixed viewBackground filling for w95.
Claus Gittinger <cg@exept.de>
parents: 2640
diff changeset
  1374
!
f919ca08f450 fixed viewBackground filling for w95.
Claus Gittinger <cg@exept.de>
parents: 2640
diff changeset
  1375
8964
7ab1983c012d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8936
diff changeset
  1376
flashRectangle:rect
7ab1983c012d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8936
diff changeset
  1377
    "flash part of the view - fill it flashColor, then white, 
7ab1983c012d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8936
diff changeset
  1378
     finally redraw.
7ab1983c012d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8936
diff changeset
  1379
     Can be used to bring attention to some line/part of view"
7ab1983c012d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8936
diff changeset
  1380
7ab1983c012d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8936
diff changeset
  1381
    self xoring:[
7ab1983c012d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8936
diff changeset
  1382
        self fillRectangle:rect color:(self blackColor).
7ab1983c012d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8936
diff changeset
  1383
    ].
7ab1983c012d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8936
diff changeset
  1384
7ab1983c012d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8936
diff changeset
  1385
    Delay waitForSeconds:0.1.
7ab1983c012d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8936
diff changeset
  1386
7ab1983c012d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8936
diff changeset
  1387
    self xoring:[
7ab1983c012d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8936
diff changeset
  1388
        self fillRectangle:rect color:(self blackColor).
7ab1983c012d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8936
diff changeset
  1389
    ].
7ab1983c012d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8936
diff changeset
  1390
    Delay waitForSeconds:0.1.
7ab1983c012d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8936
diff changeset
  1391
7ab1983c012d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8936
diff changeset
  1392
    "
7ab1983c012d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8936
diff changeset
  1393
     Display rootView flashRectangle:(10@10 corner:100@100)
7ab1983c012d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8936
diff changeset
  1394
     Display rootView flashRectangle:(100@100 corner:200@300)
7ab1983c012d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8936
diff changeset
  1395
    "
7ab1983c012d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8936
diff changeset
  1396
!
7ab1983c012d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8936
diff changeset
  1397
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1398
redraw
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1399
    "nothing done here"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1400
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1401
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1402
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1403
!DisplaySurface methodsFor:'enable/disable events'!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1404
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1405
compressMotionEvents:aBoolean
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1406
    "enable/disable motion event compression
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1407
     (i.e. replacing all motion events by the last one).
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1408
     Compression makes almost always sense, except when
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1409
     doing things like freehand drawing"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1410
4221
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
  1411
    |windowGroup|
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
  1412
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
  1413
    windowGroup := self windowGroup.
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
  1414
    windowGroup notNil ifTrue:[
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  1415
        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
  1416
    ].
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
disableButtonEvents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1420
    "disable all button events"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1421
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1422
    self disableEvent:#buttonPress; disableEvent:#buttonRelease
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1423
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1424
    "Modified: 29.4.1996 / 11:09:25 / cg"
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
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1427
disableButtonMotionEvents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1428
    "disable button motion-while-button-is-pressed events"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1429
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1430
    self disableEvent:#buttonMotion
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
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1433
disableButtonPressEvents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1434
    "disable button press events"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1435
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1436
    self disableEvent:#buttonPress
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1437
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1438
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1439
disableButtonReleaseEvents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1440
    "disable button release events"
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
    self disableEvent:#buttonRelease
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1443
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1444
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1445
disableEnterLeaveEvents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1446
    "disable both mouse-pointer enter and leave events"
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
    self disableEvent:#enter; disableEvent:#leave
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1449
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1450
    "Modified: 29.4.1996 / 11:09:37 / cg"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1451
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1452
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1453
disableEvent:anEventSymbol
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1454
    "disable an event -
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1455
     this is a private (internal) method not to be used externally.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1456
     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
  1457
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1458
    eventMask := eventMask bitAnd:(self graphicsDevice eventMaskFor:anEventSymbol) bitInvert.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  1459
    self drawableId notNil ifTrue:[
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  1460
        self graphicsDevice setEventMask:eventMask in:self drawableId
727
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
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1463
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1464
disableMotionEvents
1332
624bcfb69025 commentary
ca
parents: 1317
diff changeset
  1465
    "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
  1466
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1467
    self disableEvent:#pointerMotion
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
enableButtonEvents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1471
    "enable both mouse button press and release events.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1472
     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
  1473
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1474
    self enableEvent:#buttonPress; enableEvent:#buttonRelease
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1475
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1476
    "Modified: 29.4.1996 / 11:09:46 / cg"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1477
!
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
enableButtonMotionEvents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1480
    "enable mouse-pointer motion-while-button-is-pressed events.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1481
     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
  1482
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1483
    self enableEvent:#buttonMotion
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1484
!
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
enableButtonPressEvents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1487
    "enable mouse button press events.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1488
     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
  1489
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1490
    self enableEvent:#buttonPress
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
enableButtonReleaseEvents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1494
    "enable mouse button release events.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1495
     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
  1496
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1497
    self enableEvent:#buttonRelease
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1498
!
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
enableEnterEvents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1501
    "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
  1502
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1503
    self enableEvent:#enter
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1504
!
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
enableEnterLeaveEvents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1507
    "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
  1508
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1509
    self enableEvent:#enter; enableEvent:#leave
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1510
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1511
    "Modified: 29.4.1996 / 11:09:55 / cg"
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
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1514
enableEvent:anEventSymbol
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1515
    "enable an event -
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1516
     this is a private (internal) method not to be used externally.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1517
     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
  1518
8926
047e1f9eaeeb #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 8843
diff changeset
  1519
    |drawableId|
047e1f9eaeeb #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 8843
diff changeset
  1520
047e1f9eaeeb #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 8843
diff changeset
  1521
    drawableId := self drawableId.
047e1f9eaeeb #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 8843
diff changeset
  1522
    eventMask := (eventMask ? 0) bitOr:(device eventMaskFor:anEventSymbol).
047e1f9eaeeb #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 8843
diff changeset
  1523
    drawableId notNil ifTrue:[
047e1f9eaeeb #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 8843
diff changeset
  1524
        device setEventMask:eventMask in:drawableId
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1525
    ]
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1526
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1527
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1528
enableFocusEvents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1529
    "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
  1530
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1531
    self enableEvent:#focusChange
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1532
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1533
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1534
enableKeyEvents
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1535
    "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
  1536
     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
  1537
     ^C processing."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1538
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1539
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1540
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1541
enableKeyPressEvents
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1542
    "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
  1543
     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
  1544
     ^C processing."
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1545
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1546
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1547
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1548
enableKeyReleaseEvents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1549
    "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
  1550
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1551
    self enableEvent:#keyRelease
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1552
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1553
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1554
enableLeaveEvents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1555
    "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
  1556
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1557
    self enableEvent:#leave
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1558
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1559
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1560
enableMotionEvents
4453
79fcf4ad63c7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4436
diff changeset
  1561
    "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
  1562
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1563
    self enableEvent:#pointerMotion
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1564
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1565
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1566
!DisplaySurface methodsFor:'event dispatching'!
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1567
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1568
dispatchEvent:event
2962
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2868
diff changeset
  1569
    "dispatch an event"
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2868
diff changeset
  1570
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1571
    ^ self
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  1572
        dispatchEvent:event
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  1573
        withFocusOn:nil
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  1574
        delegate:true
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1575
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1576
    "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
  1577
!
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1578
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1579
dispatchEvent:type arguments:arguments
8501
82a7269a3173 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8487
diff changeset
  1580
    <resource: #obsolete>
82a7269a3173 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8487
diff changeset
  1581
    "dispatch an event.
82a7269a3173 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8487
diff changeset
  1582
     Obsoleted - now we always pass around event objects."
2962
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2868
diff changeset
  1583
3094
7ef0f53288bc always use the new #dispatchEvent methods
ca
parents: 3070
diff changeset
  1584
    "/ 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
  1585
    ^ self
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  1586
        dispatchEvent:nil
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  1587
        type:type
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  1588
        arguments:arguments
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  1589
        withFocusOn:nil
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  1590
        delegate:true
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1591
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1592
    "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
  1593
!
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1594
3094
7ef0f53288bc always use the new #dispatchEvent methods
ca
parents: 3070
diff changeset
  1595
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
  1596
    "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
  1597
     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
  1598
     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
  1599
     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
  1600
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1601
     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
  1602
     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
  1603
     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
  1604
     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
  1605
     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
  1606
     before.
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1607
     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
  1608
     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
  1609
     forwarding."
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1610
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1611
    |delegate selector delegateMessage delegateQuery
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1612
     eventReceiver controller deviceMessage
7410
7324cb6c30dc #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7302
diff changeset
  1613
     isKeyEvent isButtonEvent isMouseWheelEvent isPointerEvent isExposeEvent
7324cb6c30dc #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7302
diff changeset
  1614
8487
a11f6587c29c #BUGFIX by sr
sr
parents: 8477
diff changeset
  1615
     rect x y w h delegatedEvent rgn
8543
bb0d99191e20 #OTHER by chzeiher
chzeiher
parents: 8501
diff changeset
  1616
8487
a11f6587c29c #BUGFIX by sr
sr
parents: 8477
diff changeset
  1617
     eventForLastEventQuery|
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1618
8543
bb0d99191e20 #OTHER by chzeiher
chzeiher
parents: 8501
diff changeset
  1619
    type == #damage ifTrue:[
7739
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1620
        "/ OLDdamage scheme - this will vanish
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1621
        self shown ifTrue:[
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1622
            rect := argArray.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1623
            x := rect left.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1624
            y := rect top.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1625
            w := rect width.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1626
            h := rect height.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1627
            gc transformation notNil ifTrue:[
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1628
                self deviceExposeX:x y:y width:w height:h
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1629
            ] ifFalse:[
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1630
                self exposeX:x y:y width:w height:h
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1631
            ]
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1632
        ].
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1633
        ^ self
4041
7f4ec0d373f3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
  1634
    ].
7f4ec0d373f3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
  1635
7f4ec0d373f3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3910
diff changeset
  1636
    type == #newDamage ifTrue:[
7739
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1637
        "/ New damage scheme
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1638
        rgn := updateRegion.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1639
        updateRegion := nil.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1640
        self shown ifTrue:[
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1641
            rgn notNil ifTrue:[
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1642
                rgn do:[:rect |
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1643
                    "/ 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
  1644
                    "/ 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
  1645
                    realized ifTrue:[
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1646
                        x := rect left.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1647
                        y := rect top.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1648
                        w := rect width.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1649
                        h := rect height.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1650
                        gc transformation notNil ifTrue:[
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1651
                            self deviceExposeX:x y:y width:w height:h
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1652
                        ] ifFalse:[
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1653
                            self exposeX:x y:y width:w height:h
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1654
                        ]
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1655
                    ]
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1656
                ]
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1657
            ]
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1658
        ].
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1659
        ^ self
2498
4b5e7a08917d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2453
diff changeset
  1660
    ].
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1661
7410
7324cb6c30dc #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7302
diff changeset
  1662
    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
  1663
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1664
    (type == #'keyPress:x:y:') ifTrue:[
7739
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1665
        isKeyEvent := true.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1666
        deviceMessage := #'deviceKeyPress:x:y:'.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1667
        delegateMessage := #'keyPress:x:y:view:'.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1668
        delegateQuery := #'handlesKeyPress:inView:'.
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1669
    ] ifFalse:[ (type == #'keyRelease:x:y:') ifTrue:[
7739
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1670
        isKeyEvent := true.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1671
        deviceMessage := #'deviceKeyRelease:x:y:'.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1672
        delegateMessage := #'keyRelease:x:y:view:'.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1673
        delegateQuery := #'handlesKeyRelease:inView:'.
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1674
    ] ifFalse:[ (type == #'buttonMotion:x:y:') ifTrue:[
7739
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1675
        isButtonEvent := true.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1676
        deviceMessage := #'deviceButtonMotion:x:y:'.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1677
        delegateMessage := #'buttonMotion:x:y:view:'.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1678
        delegateQuery := #'handlesButtonMotion:inView:'.
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1679
    ] ifFalse:[ (type == #'buttonPress:x:y:') ifTrue:[
7739
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1680
        isButtonEvent := true.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1681
        deviceMessage := #'deviceButtonPress:x:y:'.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1682
        delegateMessage := #'buttonPress:x:y:view:'.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1683
        delegateQuery := #'handlesButtonPress:inView:'.
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1684
    ] ifFalse:[ (type == #'buttonRelease:x:y:') ifTrue:[
7739
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1685
        isButtonEvent := true.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1686
        deviceMessage := #'deviceButtonRelease:x:y:'.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1687
        delegateMessage := #'buttonRelease:x:y:view:'.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1688
        delegateQuery := #'handlesButtonRelease:inView:'.
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1689
    ] ifFalse:[ (type == #'buttonShiftPress:x:y:') ifTrue:[
7739
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1690
        isButtonEvent := true.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1691
        deviceMessage := #'deviceButtonShiftPress:x:y:'.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1692
        delegateMessage := #'buttonShiftPress:x:y:view:'.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1693
        delegateQuery := #'handlesButtonShiftPress:inView:'.
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1694
    ] ifFalse:[ (type == #'buttonMultiPress:x:y:') ifTrue:[
7739
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1695
        isButtonEvent := true.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1696
        deviceMessage := #'deviceButtonMultiPress:x:y:'.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1697
        delegateMessage := #'buttonMultiPress:x:y:view:'.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1698
        delegateQuery := #'handlesButtonMultiPress:inView:'.
4856
c47c688ed419 delegate mouse wheel events
Stefan Vogel <sv@exept.de>
parents: 4784
diff changeset
  1699
    ] ifFalse:[ (type == #mouseWheelMotion:x:y:amount:deltaTime:) ifTrue:[
7739
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1700
        isMouseWheelEvent := true.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1701
        deviceMessage := type.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1702
        delegateMessage := #mouseWheelMotion:x:y:amount:deltaTime:view:.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1703
        delegateQuery := #handlesMouseWheelMotion:inView:.
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1704
    ] ifFalse:[ (type == #'pointerEnter:x:y:') ifTrue:[
7739
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1705
        isPointerEvent := true.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1706
        deviceMessage := #'devicePointerEnter:x:y:'.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1707
        delegateMessage := #'pointerEnter:x:y:view:'.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1708
        delegateQuery := #'handlesPointerEnter:inView:'.
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1709
    ] ifFalse:[ (type == #'pointerLeave:') ifTrue:[
7739
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1710
        isPointerEvent := true.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1711
        deviceMessage := type.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1712
        delegateMessage := #'pointerLeave:view:'.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1713
        delegateQuery := #'handlesPointerLeave:inView:'.
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1714
    ] ifFalse:[ (type == #'exposeX:y:width:height:') ifTrue:[
7739
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1715
        isExposeEvent := true.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1716
        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
  1717
    ] ifFalse:[ (type == #'graphicsExposeX:y:width:height:final:') ifTrue:[
7739
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1718
        isExposeEvent := true.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1719
        deviceMessage := #'deviceGraphicsExposeX:y:width:height:final:'.
4856
c47c688ed419 delegate mouse wheel events
Stefan Vogel <sv@exept.de>
parents: 4784
diff changeset
  1720
    ]]]]]]]]]]]].
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1721
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1722
    "
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1723
     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
  1724
     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
  1725
     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
  1726
     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
  1727
    "
5208
004c601d0bc6 code cleanup
sr
parents: 5203
diff changeset
  1728
    ((isKeyEvent "or:[isMouseWheelEvent]")
004c601d0bc6 code cleanup
sr
parents: 5203
diff changeset
  1729
    and:[focusView notNil and:[self ~~ focusView]]) ifTrue:[
7739
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1730
        delegatedEvent := ev shallowCopy.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1731
        delegatedEvent delegatedFrom:ev.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1732
        delegatedEvent arguments:(ev arguments shallowCopy).
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1733
        delegatedEvent x:-1; y:-1.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1734
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1735
        focusView
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1736
            dispatchEvent:delegatedEvent
8081
d673917a4261 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8041
diff changeset
  1737
            type:delegatedEvent type
d673917a4261 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8041
diff changeset
  1738
            arguments:(delegatedEvent arguments)
7739
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1739
            withFocusOn:nil
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1740
            delegate:doDelegate.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1741
        ^ self
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1742
    ].
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1743
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1744
    doDelegate ifTrue:[
7739
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1745
        "
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1746
         handle delegated messages
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1747
        "
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1748
        (isKeyEvent
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1749
         or:[isButtonEvent
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1750
         or:[isMouseWheelEvent
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1751
         or:[isPointerEvent]]]) ifTrue:[
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1752
            delegate := self delegate.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1753
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1754
            "
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1755
             what a kludge - sending to delegate requires
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1756
             another selector and an additional argument ...
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1757
            "
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1758
            (delegate notNil) ifTrue:[
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1759
                "
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1760
                 is the delegate interested in that event ?
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1761
                 (if it does not respond to the handlesXXX message, assume: NO)
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1762
                "
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1763
                (delegate askFor:delegateQuery with:(argArray at:1) with:self) ifTrue:[
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1764
                    "
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1765
                     mhmh ... have to convert to logical coordinates
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1766
                    "
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1767
                    |currentTransformation|
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1768
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1769
                    currentTransformation := gc transformation.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1770
                    currentTransformation notNil ifTrue:[
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1771
                        argArray size > 2 ifTrue:[
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1772
                            argArray at:2 put:(currentTransformation applyInverseToX:(argArray at:2)).
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1773
                            argArray at:3 put:(currentTransformation applyInverseToY:(argArray at:3)).
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1774
                        ].
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1775
                    ].
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1776
                    argArray isNil ifTrue:[
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1777
                        delegate perform:delegateMessage with:self
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1778
                    ] ifFalse:[
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1779
                        delegate perform:delegateMessage withArguments:(argArray copyWith:self)
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1780
                    ].
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1781
                    ^ self
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1782
                ]
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1783
            ].
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1784
        ].
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1785
    ].
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1786
2708
855835147902 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2660
diff changeset
  1787
    "
855835147902 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2660
diff changeset
  1788
     if I am not shown, ignore input events
855835147902 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2660
diff changeset
  1789
    "
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1790
    (isKeyEvent
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1791
     or:[isButtonEvent
5208
004c601d0bc6 code cleanup
sr
parents: 5203
diff changeset
  1792
     or:[isMouseWheelEvent
004c601d0bc6 code cleanup
sr
parents: 5203
diff changeset
  1793
     or:[isPointerEvent]]]) ifTrue:[
7739
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1794
        realized ifFalse:[
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1795
            ^ self
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1796
        ]
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1797
    ].
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1798
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1799
    "
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1800
     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
  1801
    "
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1802
    eventReceiver := self.
8081
d673917a4261 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8041
diff changeset
  1803
    ((controller := self controller) notNil and:[controller ~~ eventReceiver]) ifTrue:[
7739
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1804
        (isKeyEvent
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1805
         or:[isButtonEvent
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1806
         or:[isMouseWheelEvent
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1807
         or:[isPointerEvent
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1808
         or:[(type == #focusIn)
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1809
         or:[(type == #focusOut)]]]]]) ifTrue:[
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1810
            eventReceiver := controller.
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1811
        ]
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1812
    ].
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1813
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1814
    "
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1815
     finally, another one:
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1816
     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
  1817
     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
  1818
     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
  1819
     in DisplaySurface translates and resends).
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1820
     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
  1821
     (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
  1822
     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
  1823
    "
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1824
    selector := type.
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1825
7739
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1826
    (isKeyEvent
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1827
     or:[isButtonEvent
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1828
     or:[isMouseWheelEvent
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1829
     or:[isPointerEvent
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1830
     or:[isExposeEvent]]]]) ifTrue:[
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1831
        gc transformation notNil ifTrue:[
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1832
            selector := deviceMessage
8009a249b670 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7734
diff changeset
  1833
        ]
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1834
    ].
8487
a11f6587c29c #BUGFIX by sr
sr
parents: 8477
diff changeset
  1835
a11f6587c29c #BUGFIX by sr
sr
parents: 8477
diff changeset
  1836
    "sr: #ev is nil when called via #dispatchEvent:arguments:
a11f6587c29c #BUGFIX by sr
sr
parents: 8477
diff changeset
  1837
     I think we should pass the 'triggering' event at least"
a11f6587c29c #BUGFIX by sr
sr
parents: 8477
diff changeset
  1838
    eventForLastEventQuery := ev.
a11f6587c29c #BUGFIX by sr
sr
parents: 8477
diff changeset
  1839
    eventForLastEventQuery isNil ifTrue:[
a11f6587c29c #BUGFIX by sr
sr
parents: 8477
diff changeset
  1840
        eventForLastEventQuery := WindowGroup lastEvent.
a11f6587c29c #BUGFIX by sr
sr
parents: 8477
diff changeset
  1841
    ].    
a11f6587c29c #BUGFIX by sr
sr
parents: 8477
diff changeset
  1842
a11f6587c29c #BUGFIX by sr
sr
parents: 8477
diff changeset
  1843
    WindowGroup lastEventQuerySignal 
a11f6587c29c #BUGFIX by sr
sr
parents: 8477
diff changeset
  1844
        answer:eventForLastEventQuery 
a11f6587c29c #BUGFIX by sr
sr
parents: 8477
diff changeset
  1845
        do:[
a11f6587c29c #BUGFIX by sr
sr
parents: 8477
diff changeset
  1846
            eventReceiver perform:selector withArguments:argArray
a11f6587c29c #BUGFIX by sr
sr
parents: 8477
diff changeset
  1847
        ].
2126
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1848
8081
d673917a4261 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8041
diff changeset
  1849
    "Created: / 20-05-1998 / 22:46:25 / cg"
d673917a4261 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8041
diff changeset
  1850
    "Modified: / 17-08-2017 / 09:47:01 / cg"
8477
7c740a230ff5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 8467
diff changeset
  1851
    "Modified: / 21-09-2018 / 11:39:47 / Claus Gittinger"
8487
a11f6587c29c #BUGFIX by sr
sr
parents: 8477
diff changeset
  1852
    "Modified: / 01-10-2018 / 14:17:18 / sr"
2962
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2868
diff changeset
  1853
!
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2868
diff changeset
  1854
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2868
diff changeset
  1855
dispatchEvent:event withFocusOn:focusViewOrNil
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2868
diff changeset
  1856
    "dispatch the event"
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2868
diff changeset
  1857
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1858
    ^ self
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  1859
        dispatchEvent:event
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  1860
        withFocusOn:focusViewOrNil
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  1861
        delegate:true
3094
7ef0f53288bc always use the new #dispatchEvent methods
ca
parents: 3070
diff changeset
  1862
7ef0f53288bc always use the new #dispatchEvent methods
ca
parents: 3070
diff changeset
  1863
    "Modified: / 20.5.1998 / 23:01:15 / cg"
7ef0f53288bc always use the new #dispatchEvent methods
ca
parents: 3070
diff changeset
  1864
!
7ef0f53288bc always use the new #dispatchEvent methods
ca
parents: 3070
diff changeset
  1865
7ef0f53288bc always use the new #dispatchEvent methods
ca
parents: 3070
diff changeset
  1866
dispatchEvent:event withFocusOn:focusViewOrNil delegate:doDelegate
7ef0f53288bc always use the new #dispatchEvent methods
ca
parents: 3070
diff changeset
  1867
    "dispatch the event"
7ef0f53288bc always use the new #dispatchEvent methods
ca
parents: 3070
diff changeset
  1868
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1869
    ^ self
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  1870
        dispatchEvent:event
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  1871
        type:event type
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  1872
        arguments:(event arguments)
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  1873
        withFocusOn:focusViewOrNil
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  1874
        delegate:doDelegate
2962
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2868
diff changeset
  1875
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2868
diff changeset
  1876
    "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
  1877
! !
1f108c76dfdb moved event dispatching code to view (where it belongs)
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  1878
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1879
!DisplaySurface methodsFor:'event handling'!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1880
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1881
activateMenu
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1882
    "if there is a menu, show it."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1883
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1884
    |menu|
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1885
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1886
    (menu := self middleButtonMenu) notNil ifTrue:[
8654
07d3251ec28f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8597
diff changeset
  1887
        self activateMenu:menu
07d3251ec28f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8597
diff changeset
  1888
    ]
07d3251ec28f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8597
diff changeset
  1889
07d3251ec28f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8597
diff changeset
  1890
    "Created: / 01-03-1996 / 13:24:55 / cg"
07d3251ec28f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8597
diff changeset
  1891
    "Modified: / 15-03-2017 / 10:41:26 / cg"
07d3251ec28f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8597
diff changeset
  1892
    "Modified: / 02-03-2019 / 11:40:45 / Claus Gittinger"
07d3251ec28f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8597
diff changeset
  1893
!
07d3251ec28f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8597
diff changeset
  1894
07d3251ec28f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8597
diff changeset
  1895
activateMenu:aMenu
07d3251ec28f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8597
diff changeset
  1896
    "if aMenu is a menu, show it."
07d3251ec28f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8597
diff changeset
  1897
07d3251ec28f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8597
diff changeset
  1898
    |menu|
07d3251ec28f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8597
diff changeset
  1899
07d3251ec28f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8597
diff changeset
  1900
    (menu := aMenu) notNil ifTrue:[
8349
1a56a0337599 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8259
diff changeset
  1901
        menu isBlock ifTrue:[ menu := menu value ].
7977
9e4870e89390 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7879
diff changeset
  1902
        menu isArray ifTrue:[
9e4870e89390 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7879
diff changeset
  1903
            "/ a spec array
9e4870e89390 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7879
diff changeset
  1904
            menu := menu decodeAsLiteralArray.
8349
1a56a0337599 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 8259
diff changeset
  1905
            menu findGuiResourcesIn:(self application ? self) for:self.
7977
9e4870e89390 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7879
diff changeset
  1906
            menu receiver:self.
9e4870e89390 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7879
diff changeset
  1907
        ].
9e4870e89390 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7879
diff changeset
  1908
        menu showAtPointer
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1909
    ]
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1910
8654
07d3251ec28f #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8597
diff changeset
  1911
    "Created: / 02-03-2019 / 11:40:29 / Claus Gittinger"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1912
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1913
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1914
buttonMotion:state x:x y:y
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1915
    "mouse was moved while button is pressed - do nothing here"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1916
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1917
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1918
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1919
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1920
buttonMultiPress:button x:x y:y
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1921
    "button was pressed fast after previous press - default to press-again"
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
    ^ self buttonPress:button x:x y:y
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1924
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1925
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1926
buttonPress:button x:x y:y
7879
88de5614b25a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7868
diff changeset
  1927
    "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
  1928
2c3f14c132be preps for right-menu on buttonRelease
Claus Gittinger <cg@exept.de>
parents: 5320
diff changeset
  1929
    (button == 2) ifTrue:[
7879
88de5614b25a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7868
diff changeset
  1930
        UserPreferences current showRightButtonMenuOnRelease ifFalse:[
88de5614b25a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7868
diff changeset
  1931
            self activateMenu.
88de5614b25a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7868
diff changeset
  1932
        ].
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1933
    ]
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1934
7879
88de5614b25a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7868
diff changeset
  1935
    "Modified: / 01-03-1996 / 13:25:07 / cg"
88de5614b25a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7868
diff changeset
  1936
    "Modified (comment): / 13-02-2017 / 20:01:10 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1937
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1938
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1939
buttonRelease:button x:x y:y
5344
2c3f14c132be preps for right-menu on buttonRelease
Claus Gittinger <cg@exept.de>
parents: 5320
diff changeset
  1940
    (button == 2) ifTrue:[
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  1941
        UserPreferences current showRightButtonMenuOnRelease ifTrue:[
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  1942
            self activateMenu.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  1943
        ].
5344
2c3f14c132be preps for right-menu on buttonRelease
Claus Gittinger <cg@exept.de>
parents: 5320
diff changeset
  1944
    ].
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1945
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1946
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1947
catchExpose
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  1948
    "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
  1949
     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
  1950
     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
  1951
     suspend until the expose/noExpose event arrives.
8041
af78382f96e9 #OTHER by mawalch
mawalch
parents: 7977
diff changeset
  1952
     This is an X speciality - for devices that do not need this kind of
1332
624bcfb69025 commentary
ca
parents: 1317
diff changeset
  1953
     asynchronous bit-blt confirmation, this is a noop.
8041
af78382f96e9 #OTHER by mawalch
mawalch
parents: 7977
diff changeset
  1954
     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
  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
    |wg|
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1958
1027
0ba82862ca8d fixes for synchronous scrolling (WINDOWS)
Claus Gittinger <cg@exept.de>
parents: 1012
diff changeset
  1959
    device scrollsAsynchronous ifFalse:[
7466
f2b2fd93f05f #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7449
diff changeset
  1960
        self setGotExposeFlag.
f2b2fd93f05f #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7449
diff changeset
  1961
        ^ false
1027
0ba82862ca8d fixes for synchronous scrolling (WINDOWS)
Claus Gittinger <cg@exept.de>
parents: 1012
diff changeset
  1962
    ].
0ba82862ca8d fixes for synchronous scrolling (WINDOWS)
Claus Gittinger <cg@exept.de>
parents: 1012
diff changeset
  1963
1295
ef93ded3c030 renamed graphicExpose -> graphicsExpose;
Claus Gittinger <cg@exept.de>
parents: 1253
diff changeset
  1964
    self setGraphicsExposures:true.
ef93ded3c030 renamed graphicExpose -> graphicsExpose;
Claus Gittinger <cg@exept.de>
parents: 1253
diff changeset
  1965
5006
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
  1966
    self clearGotExposeFlag.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1967
    wg := self windowGroup.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1968
    wg notNil ifTrue:[
7466
f2b2fd93f05f #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7449
diff changeset
  1969
        "
8041
af78382f96e9 #OTHER by mawalch
mawalch
parents: 7977
diff changeset
  1970
         must process any pending expose events, since
7466
f2b2fd93f05f #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7449
diff changeset
  1971
         usually the origin is changed soon so that previous
f2b2fd93f05f #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7449
diff changeset
  1972
         expose events coordinates are invalid
f2b2fd93f05f #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7449
diff changeset
  1973
        "
f2b2fd93f05f #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7449
diff changeset
  1974
        wg processRealExposeEventsFor:self.
f2b2fd93f05f #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7449
diff changeset
  1975
        wg sensor catchExposeFor:self.
f2b2fd93f05f #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7449
diff changeset
  1976
        ^ true
f2b2fd93f05f #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7449
diff changeset
  1977
    ].
f2b2fd93f05f #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7449
diff changeset
  1978
    ^ false.
1245
4a4e15a3e4fd pass the view as argument to the catchExpose method
Claus Gittinger <cg@exept.de>
parents: 1236
diff changeset
  1979
8041
af78382f96e9 #OTHER by mawalch
mawalch
parents: 7977
diff changeset
  1980
    "Modified: / 06-08-1997 / 19:50:15 / cg"
af78382f96e9 #OTHER by mawalch
mawalch
parents: 7977
diff changeset
  1981
    "Modified (comment): / 30-05-2017 / 18:58:45 / mawalch"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1982
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1983
3595
fee0baf5b18e #coveredBy: moved from SimpleView to DisplaySurface
Stefan Vogel <sv@exept.de>
parents: 3546
diff changeset
  1984
coveredBy:aView
fee0baf5b18e #coveredBy: moved from SimpleView to DisplaySurface
Stefan Vogel <sv@exept.de>
parents: 3546
diff changeset
  1985
    "the receiver has been covered by another view;
fee0baf5b18e #coveredBy: moved from SimpleView to DisplaySurface
Stefan Vogel <sv@exept.de>
parents: 3546
diff changeset
  1986
     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
  1987
!
fee0baf5b18e #coveredBy: moved from SimpleView to DisplaySurface
Stefan Vogel <sv@exept.de>
parents: 3546
diff changeset
  1988
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1989
deviceButtonMotion:state x:x y:y
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1990
    "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
  1991
     from the device (i.e. coordinates are in device coordinates).
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1992
     If there is a transformation, apply the inverse
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1993
     and send a #buttonMotion with the logical coordinates.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1994
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  1995
     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
  1996
     redefine this method -
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  1997
     those which are interested in logical coordinates
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1998
     should redefine #buttonMotion:x:y:"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1999
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2000
    |lx ly currentTransformation|
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2001
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2002
    lx := x.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2003
    ly := y.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2004
    currentTransformation := gc transformation.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2005
    currentTransformation notNil ifTrue:[
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2006
        lx notNil ifTrue:[
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2007
            lx := currentTransformation applyInverseToX:lx.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2008
            ly := currentTransformation applyInverseToY:ly.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2009
        ].
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2010
    ].
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2011
    self buttonMotion:state x:lx y:ly
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
    "Modified: 20.5.1996 / 17:45:25 / cg"
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2014
    "Modified: 14.10.1996 / 22:25:12 / stefan"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2015
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2016
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2017
deviceButtonMultiPress:butt x:x y:y
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2018
    "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
  2019
     from the device (i.e. coordinates are in device coordinates).
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2020
     If there is a transformation, apply the inverse
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2021
     and send a buttonMultiPress with the logical coordinates.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2022
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2023
     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
  2024
     redefine this method -
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2025
     those which are interested in logical coordinates
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2026
     should redefine #buttonMultiPress:x:y:"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2027
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2028
    |lx ly currentTransformation|
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2029
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2030
    lx := x.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2031
    ly := y.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2032
    currentTransformation := gc transformation.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2033
    currentTransformation notNil ifTrue:[
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2034
        lx notNil ifTrue:[
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2035
            lx := currentTransformation applyInverseToX:lx.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2036
            ly := currentTransformation applyInverseToY:ly.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2037
        ].
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2038
    ].
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2039
    self buttonMultiPress:butt x:lx y:ly
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
    "Modified: 20.5.1996 / 17:45:22 / cg"
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2042
    "Modified: 14.10.1996 / 22:25:22 / stefan"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2043
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2044
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2045
deviceButtonPress:butt x:x y:y
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2046
    "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
  2047
     from the device (i.e. coordinates are in device coordinates).
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2048
     If there is a transformation, apply the inverse
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2049
     and send a buttonPress with the logical coordinates.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2050
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2051
     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
  2052
     redefine this method -
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2053
     those which are interested in logical coordinates
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2054
     should redefine #buttonPress:x:y:"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2055
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2056
    |lx ly currentTransformation|
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2057
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2058
    lx := x.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2059
    ly := y.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2060
    currentTransformation := gc transformation.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2061
    currentTransformation notNil ifTrue:[
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2062
        lx notNil ifTrue:[
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2063
            lx := currentTransformation applyInverseToX:lx.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2064
            ly := currentTransformation applyInverseToY:ly.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2065
        ].
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2066
    ].
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2067
    self buttonPress:butt x:lx y:ly
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2068
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2069
    "Modified: 20.5.1996 / 17:45:18 / cg"
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2070
    "Modified: 14.10.1996 / 22:25:30 / stefan"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2071
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2072
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2073
deviceButtonRelease:butt x:x y:y
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2074
    "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
  2075
     from the device (i.e. coordinates are in device coordinates).
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2076
     If there is a transformation, apply the inverse
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2077
     and send a buttonRelease with the logical coordinates.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2078
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2079
     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
  2080
     redefine this method -
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2081
     those which are interested in logical coordinates
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2082
     should redefine #buttonRelease:x:y:"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2083
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2084
    |lx ly currentTransformation|
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2085
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2086
    lx := x.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2087
    ly := y.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2088
    currentTransformation := gc transformation.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2089
    currentTransformation notNil ifTrue:[
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2090
        lx notNil ifTrue:[
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2091
            lx := currentTransformation applyInverseToX:lx.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2092
            ly := currentTransformation applyInverseToY:ly.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2093
        ].
727
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
    self buttonRelease:butt x:lx y:ly
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2096
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2097
    "Modified: 20.5.1996 / 17:45:14 / cg"
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2098
    "Modified: 14.10.1996 / 22:25:37 / stefan"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2099
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2100
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2101
deviceButtonShiftPress:butt x:x y:y
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2102
    "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
  2103
     from the device (i.e. coordinates are in device coordinates).
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2104
     If there is a transformation, apply the inverse
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2105
     and send a buttonShiftPress with the logical coordinates.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2106
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2107
     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
  2108
     redefine this method -
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2109
     those which are interested in logical coordinates
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2110
     should redefine #buttonShiftPress:x:y:"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2111
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2112
    |lx ly currentTransformation|
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2113
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2114
    lx := x.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2115
    ly := y.
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 notNil ifTrue:[
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2119
            lx := currentTransformation applyInverseToX:lx.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2120
            ly := currentTransformation applyInverseToY:ly.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2121
        ].
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2122
    ].
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2123
    self buttonShiftPress:butt x:lx y:ly
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: 20.5.1996 / 17:45:09 / cg"
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2126
    "Modified: 14.10.1996 / 22:25:49 / 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
deviceExposeX:x y:y width:w height:h
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 an expose 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 #exposeX:x:y:width:height:"
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 lw lh 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.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2144
    lw := w.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2145
    lh := h.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2146
    currentTransformation := gc transformation.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2147
    currentTransformation notNil ifTrue:[
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2148
        lx := currentTransformation applyInverseToX:lx.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2149
        ly := currentTransformation applyInverseToY:ly.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2150
        lw := currentTransformation applyInverseScaleX:lw.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2151
        lh := currentTransformation applyInverseScaleY:lh.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2152
    ].
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2153
    self exposeX:lx y:ly width:lw height:lh
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2154
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2155
    "Modified: 13.5.1996 / 11:31:44 / cg"
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2156
    "Modified: 14.10.1996 / 22:26:00 / stefan"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2157
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2158
1295
ef93ded3c030 renamed graphicExpose -> graphicsExpose;
Claus Gittinger <cg@exept.de>
parents: 1253
diff changeset
  2159
deviceGraphicsExposeX:x y:y width:w height:h final:final
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2160
    "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
  2161
     from the device (i.e. coordinates are in device coordinates).
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2162
     If there is a transformation, apply the inverse
1295
ef93ded3c030 renamed graphicExpose -> graphicsExpose;
Claus Gittinger <cg@exept.de>
parents: 1253
diff changeset
  2163
     and send a graphicsExpose with the logical coordinates.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2164
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2165
     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
  2166
     redefine this method -
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2167
     those which are interested in logical coordinates
1295
ef93ded3c030 renamed graphicExpose -> graphicsExpose;
Claus Gittinger <cg@exept.de>
parents: 1253
diff changeset
  2168
     should redefine #graphicsExposeX:x:y:width:height:"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2169
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2170
    |lx ly lw lh currentTransformation|
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2171
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2172
    lx := x.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2173
    ly := y.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2174
    lw := w.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2175
    lh := h.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2176
    currentTransformation := gc transformation.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2177
    currentTransformation notNil ifTrue:[
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2178
        lx := currentTransformation applyInverseToX:lx.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2179
        ly := currentTransformation applyInverseToY:ly.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2180
        lw := currentTransformation applyInverseScaleX:lw.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2181
        lh := currentTransformation applyInverseScaleY:lh.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2182
    ].
1295
ef93ded3c030 renamed graphicExpose -> graphicsExpose;
Claus Gittinger <cg@exept.de>
parents: 1253
diff changeset
  2183
    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
  2184
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2185
    "Modified: 13.5.1996 / 11:31:54 / cg"
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2186
    "Modified: 14.10.1996 / 22:26:08 / stefan"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2187
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2188
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2189
deviceKeyPress:key x:x y:y
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2190
    "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
  2191
     from the device (i.e. coordinates are in device coordinates).
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2192
     If there is a transformation, apply the inverse
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2193
     and send a keyPress with the logical coordinates.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2194
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2195
     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
  2196
     redefine this method -
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2197
     those which are interested in logical coordinates
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2198
     should redefine #keyPress:x:y:"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2199
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2200
    |lx ly currentTransformation|
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2201
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2202
    lx := x.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2203
    ly := y.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2204
    currentTransformation := gc transformation.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2205
    currentTransformation notNil ifTrue:[
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2206
        lx notNil ifTrue:[
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2207
            lx := currentTransformation applyInverseToX:lx.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2208
            ly := currentTransformation applyInverseToY:ly.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2209
        ]
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2210
    ].
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2211
    self keyPress:key x:lx y:ly
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
    "Modified: 20.5.1996 / 17:44:59 / cg"
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2214
    "Modified: 14.10.1996 / 22:26:17 / stefan"
727
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
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2217
deviceKeyRelease:key x:x y:y
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2218
    "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
  2219
     from the device (i.e. coordinates are in device coordinates).
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2220
     If there is a transformation, apply the inverse
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2221
     and send a keyRelease with the logical coordinates.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2222
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2223
     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
  2224
     redefine this method -
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2225
     those which are interested in logical coordinates
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2226
     should redefine #keyRelease:x:y:"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2227
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2228
    |lx ly currentTransformation|
727
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
    lx := x.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2231
    ly := y.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2232
    currentTransformation := gc transformation.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2233
    currentTransformation notNil ifTrue:[
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2234
        lx notNil ifTrue:[
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2235
            lx := currentTransformation applyInverseToX:lx.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2236
            ly := currentTransformation applyInverseToY:ly.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2237
        ]
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2238
    ].
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2239
    self keyRelease:key x:lx y:ly
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2240
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2241
    "Modified: 20.5.1996 / 17:44:42 / cg"
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2242
    "Modified: 14.10.1996 / 22:26:28 / stefan"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2243
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2244
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2245
devicePointerEnter:state x:x y:y
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2246
    "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
  2247
     from the device (i.e. coordinates are in device coordinates).
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2248
     If there is a transformation, apply the inverse
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2249
     and send a pointerEnter with the logical coordinates.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2250
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2251
     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
  2252
     redefine this method -
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2253
     those which are interested in logical coordinates
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2254
     should redefine #pointerEnter:x:y:"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2255
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2256
    |lx ly currentTransformation|
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2257
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2258
    lx := x.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2259
    ly := y.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2260
    currentTransformation := gc transformation.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2261
    currentTransformation notNil ifTrue:[
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2262
        lx notNil ifTrue:[
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2263
            lx := currentTransformation applyInverseToX:lx.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2264
            ly := currentTransformation applyInverseToY:ly.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2265
        ]
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2266
    ].
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2267
    self pointerEnter:state x:lx y:ly
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
    "Modified: 20.5.1996 / 17:44:54 / cg"
1074
da107006d4f6 Rename misspelled "interrest" to "interest".
Stefan Vogel <sv@exept.de>
parents: 1027
diff changeset
  2270
    "Modified: 14.10.1996 / 22:26:35 / stefan"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2271
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2272
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2273
exposeX:x y:y width:w height:h
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2274
    "an expose event - nothing done here"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2275
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2276
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2277
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2278
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2279
focusIn
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2280
    "got keyboard focus - do nothing here"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2281
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2282
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2283
!
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
focusOut
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2286
    "lost keyboard focus - do nothing here"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2287
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2288
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2289
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2290
1295
ef93ded3c030 renamed graphicExpose -> graphicsExpose;
Claus Gittinger <cg@exept.de>
parents: 1253
diff changeset
  2291
graphicsExposeX:x y:y width:w height:h final:final
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2292
    "an expose event after a scroll - do normal redraw processing"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2293
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2294
    self exposeX:x y:y width:w height:h
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2295
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2296
5961
77ddad815ad4 Support of hotkey events
ab
parents: 5935
diff changeset
  2297
hotkeyWithId:aId rawKey:aKey
77ddad815ad4 Support of hotkey events
ab
parents: 5935
diff changeset
  2298
    "default action is to do nothing - may be reimplemented "
77ddad815ad4 Support of hotkey events
ab
parents: 5935
diff changeset
  2299
    ^ self
77ddad815ad4 Support of hotkey events
ab
parents: 5935
diff changeset
  2300
!
77ddad815ad4 Support of hotkey events
ab
parents: 5935
diff changeset
  2301
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2302
keyPress:key x:x y:y
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2303
    "a key was pressed in this view.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2304
     Here only keyCommands are handled - more action has to
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2305
     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
  2306
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2307
    |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
  2308
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2309
    (keyCommands := self keyCommands) notNil ifTrue:[
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2310
        action := keyCommands at:key ifAbsent:[nil].
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2311
        action value
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2312
    ].
3514
a20d990a7b3b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3343
diff changeset
  2313
1105
76a76be62263 allow second chance for keys with Basic-prefix
Claus Gittinger <cg@exept.de>
parents: 1093
diff changeset
  2314
    key isSymbol ifTrue:[
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2315
        (key startsWith:'Basic') ifTrue:[
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2316
            "/ an unhandled BasicFoo key;
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2317
            "/ retry as Foo
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2318
            rest := key withoutPrefix:'Basic'.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2319
            restKey := rest asSymbolIfInterned.
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2320
            restKey notNil ifTrue:[
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2321
                self keyPress:restKey x:x y:y
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2322
            ]
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2323
        ].
8843
6a876fd40a2e #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 8724
diff changeset
  2324
        key == #Help ifTrue:[
6a876fd40a2e #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 8724
diff changeset
  2325
            Error ignoreIn:[
6a876fd40a2e #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 8724
diff changeset
  2326
                self application openDocumentation.
6a876fd40a2e #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 8724
diff changeset
  2327
            ].
6a876fd40a2e #UI_ENHANCEMENT by exept
Claus Gittinger <cg@exept.de>
parents: 8724
diff changeset
  2328
        ].
1105
76a76be62263 allow second chance for keys with Basic-prefix
Claus Gittinger <cg@exept.de>
parents: 1093
diff changeset
  2329
    ].
76a76be62263 allow second chance for keys with Basic-prefix
Claus Gittinger <cg@exept.de>
parents: 1093
diff changeset
  2330
76a76be62263 allow second chance for keys with Basic-prefix
Claus Gittinger <cg@exept.de>
parents: 1093
diff changeset
  2331
    "Modified: 6.11.1996 / 17:51:15 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2332
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2333
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2334
keyRelease:key x:x y:y
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2335
    "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
  2336
1105
76a76be62263 allow second chance for keys with Basic-prefix
Claus Gittinger <cg@exept.de>
parents: 1093
diff changeset
  2337
    key isSymbol ifTrue:[
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2338
        (key startsWith:#Basic) ifTrue:[
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2339
            "/ an unhandled BasicFoo key;
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2340
            "/ retry as Foo
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2341
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2342
            self keyRelease:(key copyFrom:#Basic size) asSymbol x:x y:y
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2343
        ].
1105
76a76be62263 allow second chance for keys with Basic-prefix
Claus Gittinger <cg@exept.de>
parents: 1093
diff changeset
  2344
    ].
76a76be62263 allow second chance for keys with Basic-prefix
Claus Gittinger <cg@exept.de>
parents: 1093
diff changeset
  2345
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2346
    ^ self
1105
76a76be62263 allow second chance for keys with Basic-prefix
Claus Gittinger <cg@exept.de>
parents: 1093
diff changeset
  2347
76a76be62263 allow second chance for keys with Basic-prefix
Claus Gittinger <cg@exept.de>
parents: 1093
diff changeset
  2348
    "Modified: 6.11.1996 / 17:51:20 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2349
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2350
6828
d7a7f04b015f class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6815
diff changeset
  2351
mouseWheelMotion:buttonState x:x y:y amount:amount deltaTime:dTime
d7a7f04b015f class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6815
diff changeset
  2352
    "ignored"
d7a7f04b015f class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6815
diff changeset
  2353
d7a7f04b015f class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6815
diff changeset
  2354
    ^ self
d7a7f04b015f class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6815
diff changeset
  2355
!
d7a7f04b015f class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6815
diff changeset
  2356
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2357
noExpose
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2358
    "a no expose event after a scroll (event-mode only)"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2359
5006
c22106d6777a gotExpose flag eliminated (to free an instVar slot)
Claus Gittinger <cg@exept.de>
parents: 4969
diff changeset
  2360
    self setGotExposeFlag.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2361
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2362
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2363
pointerEnter:state x:x y:y
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2364
    "mouse cursor entered view - do nothing here"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2365
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2366
    ^ self
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
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2369
pointerLeave:state
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2370
    "mouse cursor left view - do nothing here"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2371
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2372
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2373
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2374
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2375
resizeRequest
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2376
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2377
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2378
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2379
waitForExpose
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2380
    "wait until an expose event arrives (to wait for scroll-finish)"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2381
2421
037f43af3b0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2398
diff changeset
  2382
    |wg endPollTime pollDelay|
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2383
1027
0ba82862ca8d fixes for synchronous scrolling (WINDOWS)
Claus Gittinger <cg@exept.de>
parents: 1012
diff changeset
  2384
    device scrollsAsynchronous ifFalse:[
6372
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2385
        self setGotExposeFlag.
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2386
        ^ self
1027
0ba82862ca8d fixes for synchronous scrolling (WINDOWS)
Claus Gittinger <cg@exept.de>
parents: 1012
diff changeset
  2387
    ].
0ba82862ca8d fixes for synchronous scrolling (WINDOWS)
Claus Gittinger <cg@exept.de>
parents: 1012
diff changeset
  2388
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2389
    wg := self windowGroup.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2390
    wg notNil ifTrue:[
6372
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2391
        "/
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2392
        "/ a normal (suspendable) view.
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2393
        "/ wait by doing a real wait
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2394
        "/
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2395
         wg sensor waitForExposeFor:self
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2396
    ] ifFalse:[
6372
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2397
        "/
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2398
        "/ a pure event driven view.
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2399
        "/ wait by doing a direct dispatch loop until the event arrives.
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2400
        "/ i.e. poll for the event
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2401
        "/
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2402
        device isWindowsPlatform ifTrue:[
7744
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  2403
            pollDelay := 0.5.
6372
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2404
        ] ifFalse:[
7744
2d91d5b6cd3d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7739
diff changeset
  2405
            pollDelay := 1.
6372
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2406
        ].
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2407
        endPollTime := Timestamp now addSeconds:pollDelay.
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2408
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2409
        [self gotExpose] whileFalse:[
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2410
            realized ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2411
                (device exposeEventPendingFor:gc drawableId withSync:true) ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2412
                    device dispatchExposeEventFor:gc drawableId.
6372
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2413
                ].
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2414
            ].
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2415
            realized ifFalse:[
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2416
                self setGotExposeFlag.
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2417
                ^ self
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2418
            ].
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2419
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2420
            "/ break out of the poll after a while
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2421
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2422
            Timestamp now > endPollTime ifTrue:[
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2423
                'DisplaySurface [warning]: lost expose event' errorPrintCR.
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2424
                self setGotExposeFlag.
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2425
                ^ self
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2426
            ].
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2427
            Processor yield.
6d9bf1f15278 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6240
diff changeset
  2428
        ].
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2429
    ]
1129
2a3eaf218500 destroy while waiting for expose.
Claus Gittinger <cg@exept.de>
parents: 1105
diff changeset
  2430
2421
037f43af3b0e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2398
diff changeset
  2431
    "Modified: / 9.1.1999 / 01:58:09 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2432
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2433
8936
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2434
!DisplaySurface methodsFor:'event simulation'!
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2435
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2436
simulateButtonMotion:buttonMask to:aPoint sendDisplayEvent:sendDisplayEvent
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2437
    "simulate a button motion by determining which sub-view is affected and
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2438
     synthetically generating a buttonPressEvent for whatever view is underneath.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2439
     Returns the view which precessed the event or nil."
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2440
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2441
    |ev|
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2442
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2443
    ev := WindowEvent buttonMotion:buttonMask x:0 y:0 view:self.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2444
    "/ x/y will be set in simulateUserEvent:at:sendDisplayEvent:
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2445
    ^ self simulateUserEvent:ev at:aPoint sendDisplayEvent:sendDisplayEvent
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2446
!
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2447
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2448
simulateButtonPress:button at:aPoint
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2449
    "simulate a button press by determining which sub-view is affected and
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2450
     synthetically generating a buttonPressEvent for whatever view is underneath.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2451
     Returns the view which precessed the event or nil."
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2452
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2453
    ^ self simulateButtonPress:button at:aPoint sendDisplayEvent:false
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2454
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2455
    "Created: / 12-07-2011 / 14:36:02 / cg"
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2456
!
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2457
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2458
simulateButtonPress:button at:aPoint sendDisplayEvent:sendDisplayEvent
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2459
    "simulate a button press by determining which sub-view is affected and
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2460
     synthetically generating a buttonPressEvent for whatever view is underneath.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2461
     Returns the view which precessed the event or nil."
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2462
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2463
    |ev|
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2464
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2465
    ev := WindowEvent buttonPress:button x:0 y:0 view:self.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2466
    "/ x/y will be set in simulateUserEvent:at:sendDisplayEvent:
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2467
    ^ self simulateUserEvent:ev at:aPoint sendDisplayEvent:sendDisplayEvent
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2468
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2469
    "Created: / 12-07-2011 / 14:36:02 / cg"
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2470
    "Modified (comment): / 19-07-2019 / 13:57:45 / Claus Gittinger"
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2471
!
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2472
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2473
simulateButtonRelease:button at:aPoint
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2474
    "simulate a button release by determining which sub-view is affected and
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2475
     synthetically generating a buttonPressEvent for whatever view is underneath.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2476
     Returns the view which precessed the event or nil."
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2477
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2478
    ^ self simulateButtonRelease:button at:aPoint sendDisplayEvent:false
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2479
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2480
    "Created: / 12-07-2011 / 14:54:37 / cg"
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2481
!
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2482
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2483
simulateButtonRelease:button at:aPoint sendDisplayEvent:sendDisplayEvent
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2484
    "simulate a button release by determining which sub-view is affected and
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2485
     synthetically generating a buttonPressEvent for whatever view is underneath.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2486
     Returns the view which precessed the event or nil."
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2487
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2488
    |ev|
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2489
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2490
    ev := WindowEvent buttonRelease:button x:0 y:0 view:self.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2491
    "/ x/y will be set in simulateUserEvent:at:sendDisplayEvent:
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2492
    ^ self simulateUserEvent:ev at:aPoint sendDisplayEvent:sendDisplayEvent
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2493
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2494
    "Created: / 12-07-2011 / 14:54:37 / cg"
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2495
    "Modified (comment): / 19-07-2019 / 13:57:58 / Claus Gittinger"
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2496
!
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2497
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2498
simulateKey:aKeySymbolOrCharacter at:aPoint sendDisplayEvent:sendDisplayEvent keyPressTime:seconds
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2499
    "simulate text input by generating alternating keyPress/keyRelease events."
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2500
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2501
    (aKeySymbolOrCharacter isCharacter
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2502
      and:[ aKeySymbolOrCharacter isLetter 
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2503
      and:[ aKeySymbolOrCharacter isUppercase
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2504
    ]]) ifTrue:[
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2505
        self simulateKeyPress:#Shift at:aPoint sendDisplayEvent:sendDisplayEvent.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2506
        self simulateKeyPress:aKeySymbolOrCharacter asLowercase at:aPoint sendDisplayEvent:sendDisplayEvent.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2507
        Delay waitForSeconds:seconds.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2508
        self simulateKeyRelease:aKeySymbolOrCharacter asLowercase at:aPoint sendDisplayEvent:sendDisplayEvent.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2509
        self simulateKeyRelease:#Shift at:aPoint sendDisplayEvent:sendDisplayEvent.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2510
    ] ifFalse:[
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2511
        self simulateKeyPress:aKeySymbolOrCharacter at:aPoint sendDisplayEvent:sendDisplayEvent.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2512
        Delay waitForSeconds:seconds.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2513
        self simulateKeyRelease:aKeySymbolOrCharacter at:aPoint sendDisplayEvent:sendDisplayEvent.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2514
    ].
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2515
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2516
    "Created: / 19-07-2019 / 14:40:52 / Claus Gittinger"
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2517
!
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2518
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2519
simulateKeyPress:keyOrStringOrSymbol at:aPoint
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2520
    "simulate a key press by determining which sub-view is affected and
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2521
     synthetically generating a keyPressEvent for whatever view is underneath.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2522
     Returns the view which processed the event or nil."
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2523
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2524
    ^ self simulateKeyPress:keyOrStringOrSymbol at:aPoint sendDisplayEvent:false
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2525
!
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2526
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2527
simulateKeyPress:keyOrStringOrSymbol at:aPoint sendDisplayEvent:sendDisplayEvent
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2528
    "simulate a key press by determining which sub-view is affected and
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2529
     synthetically generating a keyPressEvent for whatever view is underneath.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2530
     Returns the view which processed the event or nil."
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2531
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2532
    |sequence ev lastView|
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2533
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2534
    (keyOrStringOrSymbol isCharacter or:[keyOrStringOrSymbol isSymbol])
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2535
        ifTrue:[ sequence := Array with:keyOrStringOrSymbol ]
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2536
        ifFalse:[ sequence := keyOrStringOrSymbol ].
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2537
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2538
    sequence do:[:each |
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2539
        ev := WindowEvent keyPress:each x:0 y:0 view:self.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2540
        "/ x/y will be set in simulateUserEvent:at:sendDisplayEvent:
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2541
        lastView := self simulateUserEvent:ev at:aPoint sendDisplayEvent:sendDisplayEvent
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2542
    ].
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2543
    ^ lastView
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2544
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2545
    "Modified (comment): / 19-07-2019 / 13:58:06 / Claus Gittinger"
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2546
!
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2547
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2548
simulateKeyPressRelease:keyOrStringOrSymbol at:aPoint
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2549
    "simulate a key release by determining which sub-view is affected and
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2550
     synthetically generating a keyPressEvent for whatever view is underneath.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2551
     Returns the view which processed the event or nil."
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2552
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2553
    ^ self simulateKeyPressRelease:keyOrStringOrSymbol at:aPoint sendDisplayEvent:false
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2554
!
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2555
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2556
simulateKeyPressRelease:keyOrStringOrSymbol at:aPoint sendDisplayEvent:sendDisplayEvent
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2557
    "simulate a key release by determining which sub-view is affected and
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2558
     synthetically generating a keyPressEvent for whatever view is underneath.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2559
     Returns the view which processed the event or nil."
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2560
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2561
    |sequence ev1 ev2 lastView|
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2562
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2563
    (keyOrStringOrSymbol isCharacter or:[keyOrStringOrSymbol isSymbol])
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2564
        ifTrue:[ sequence := Array with:keyOrStringOrSymbol ]
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2565
        ifFalse:[ sequence := keyOrStringOrSymbol ].
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2566
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2567
    sequence do:[:each |
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2568
        ev1 := WindowEvent keyPress:each x:0 y:0 view:self.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2569
        "/ x/y will be set in simulateUserEvent:at:sendDisplayEvent:
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2570
        lastView := self simulateUserEvent:ev1 at:aPoint sendDisplayEvent:sendDisplayEvent.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2571
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2572
        ev2 := WindowEvent keyRelease:each x:0 y:0 view:self.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2573
        "/ x/y will be set in simulateUserEvent:at:sendDisplayEvent:
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2574
        lastView := self simulateUserEvent:ev2 at:aPoint sendDisplayEvent:sendDisplayEvent.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2575
    ].
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2576
    ^ lastView
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2577
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2578
    "Modified (comment): / 19-07-2019 / 13:58:14 / Claus Gittinger"
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2579
!
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2580
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2581
simulateKeyRelease:keyOrStringOrSymbol at:aPoint
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2582
    "simulate a key release by determining which sub-view is affected and
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2583
     synthetically generating a keyPressEvent for whatever view is underneath.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2584
     Returns the view which processed the event or nil."
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2585
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2586
    ^ self simulateKeyRelease:keyOrStringOrSymbol at:aPoint sendDisplayEvent:false
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2587
!
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2588
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2589
simulateKeyRelease:keyOrStringOrSymbol at:aPoint sendDisplayEvent:sendDisplayEvent
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2590
    "simulate a key release by determining which sub-view is affected and
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2591
     synthetically generating a keyPressEvent for whatever view is underneath.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2592
     Returns the view which processed the event or nil."
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2593
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2594
    |sequence ev lastView|
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2595
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2596
    (keyOrStringOrSymbol isCharacter or:[keyOrStringOrSymbol isSymbol])
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2597
        ifTrue:[ sequence := Array with:keyOrStringOrSymbol ]
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2598
        ifFalse:[ sequence := keyOrStringOrSymbol ].
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2599
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2600
    sequence do:[:each |
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2601
        ev := WindowEvent keyRelease:each x:0 y:0 view:self.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2602
        "/ x/y will be set in simulateUserEvent:at:sendDisplayEvent:
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2603
        lastView := self simulateUserEvent:ev at:aPoint sendDisplayEvent:sendDisplayEvent
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2604
    ].
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2605
    ^ lastView
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2606
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2607
    "Modified (comment): / 19-07-2019 / 13:58:18 / Claus Gittinger"
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2608
!
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2609
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2610
simulateTextInput:aString at:aPoint sendDisplayEvent:sendDisplayEvent
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2611
    "simulate text input by generating alternating keyPress/keyRelease events."
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2612
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2613
    self simulateTextInput:aString at:aPoint sendDisplayEvent:sendDisplayEvent keyPressTime:0.05
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2614
!
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2615
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2616
simulateTextInput:aString at:aPoint sendDisplayEvent:sendDisplayEvent keyPressTime:seconds
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2617
    "simulate text input by generating alternating keyPress/keyRelease events."
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2618
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2619
    aString do:[:eachCharacter |
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2620
        self simulateKey:eachCharacter at:aPoint sendDisplayEvent:sendDisplayEvent keyPressTime:seconds
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2621
    ].
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2622
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2623
    "Created: / 19-07-2019 / 14:40:52 / Claus Gittinger"
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2624
!
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2625
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2626
simulateUserEvent:ev at:aPoint
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2627
    "simulate a button press by determining which sub-view is affected and
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2628
     synthetically generating a buttonPressEvent for whatever view is underneath.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2629
     Cares for any active grab - i.e. if some other view has grabbed the pointer or keyboard
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2630
     the event is sent to the grabView with pointer coordinate translated as required
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2631
     (typically these are popup views like menus)
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2632
     Returns the view which precessed the event or nil."
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2633
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2634
    ^ self simulateUserEvent:ev at:aPoint sendDisplayEvent:false
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2635
!
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2636
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2637
simulateUserEvent:ev at:aPoint sendDisplayEvent:sendDisplayEvent
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2638
    "simulate a button event by determining which sub-view is affected and
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2639
     synthetically generating an event for whatever view is underneath.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2640
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2641
     If sendDisplayEvent is true, a real physical event is generated via sendEvent, from the Display (xserver). 
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2642
     Otherwise, the event is pushed into the widget's event queue, without a roundtrip through the display.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2643
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2644
     Otherwise, care for any active grab - i.e. if some other view has grabbed the pointer or keyboard
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2645
     the event is sent to the grabView with pointer coordinate translated as required
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2646
     (typically these are popup views like menus)
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2647
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2648
     Returns the view which processed the event or nil. 
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2649
     For displayEvent sending, always return the receiver, as we do not know how the grab processing came out at the end"
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2650
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2651
    |targetView pointXLated sensor evArg|
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2652
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2653
    sendDisplayEvent ifTrue:[
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2654
        "/ translate to screen coordinates
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2655
        pointXLated := device translatePoint:aPoint from:(self id) to:(device rootWindowId).
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2656
        "/ and send it via the display
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2657
        ev isButtonPressEvent ifTrue:[
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2658
            evArg := #buttonPress
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2659
        ] ifFalse:[ ev isButtonReleaseEvent ifTrue:[
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2660
            evArg := #buttonRelease
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2661
        ] ifFalse:[ ev isKeyPressEvent ifTrue:[
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2662
            evArg := #keyPress
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2663
        ] ifFalse:[ ev isKeyReleaseEvent ifTrue:[
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2664
            evArg := #keyRelease
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2665
        ] ifFalse:[
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2666
            evArg := ev type
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2667
        ]]]].
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2668
        device
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2669
            sendKeyOrButtonEvent:evArg
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2670
            x:pointXLated x y:pointXLated y
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2671
            keyOrButton:(ev isKeyEvent ifTrue:[ev rawKey] ifFalse:[ev button])
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2672
            state:(ev modifierFlags)
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2673
            toViewId:self id.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2674
        ^ self.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2675
    ].
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2676
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2677
    (ev isButtonEvent or:[ev isPointerEnterLeaveEvent]) ifTrue:[
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2678
        "/ if there is a pointer grab, the event has to be sent to that one
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2679
        targetView := device activePointerGrab.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2680
        "/ Transcript showCR:'direct to %1' with:targetView.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2681
    ] ifFalse:[
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2682
        (ev isKeyEvent) ifTrue:[
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2683
            "/ if there is a keyboard grab, the event has to be sent to that one
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2684
            targetView := device activeKeyboardGrab.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2685
            "/ Transcript showCR:'direct to %1' with:targetView.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2686
        ].
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2687
    ].
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2688
    
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2689
    targetView isNil ifTrue:[
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2690
        ((0@0 extent:self extent) containsPoint:aPoint) ifTrue:[
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2691
            self subViews do:[:each |
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2692
                |whichView|
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2693
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2694
                whichView := each simulateUserEvent:ev 
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2695
                                  at:(device translatePoint:aPoint fromView:self toView:each)
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2696
                                  sendDisplayEvent:false.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2697
                whichView notNil ifTrue:[^ whichView].
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2698
            ].
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2699
            targetView := self.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2700
        ].
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2701
    ].
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2702
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2703
    targetView notNil ifTrue:[
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2704
        sensor := targetView sensor.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2705
        targetView == self ifTrue:[
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2706
            pointXLated := aPoint
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2707
        ] ifFalse:[
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2708
            pointXLated := device translatePoint:aPoint fromView:self toView:targetView.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2709
        ].
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2710
        ev x:(pointXLated x).
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2711
        ev y:(pointXLated y).
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2712
        ev view:targetView.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2713
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2714
        ev isButtonPressEvent ifTrue:[
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2715
            sensor buttonPress:ev button x:ev x y:ev y view:targetView.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2716
        ] ifFalse:[
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2717
            ev isButtonReleaseEvent ifTrue:[
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2718
                sensor buttonRelease:ev button x:(ev x) y:(ev y) view:targetView.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2719
            ] ifFalse:[
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2720
                sensor pushEvent:ev.
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2721
            ]
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2722
        ].
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2723
        ^ targetView
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2724
    ].
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2725
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2726
    ^ nil
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2727
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2728
    "Created: / 12-07-2011 / 14:53:19 / cg"
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2729
    "Modified (format): / 19-07-2019 / 14:08:26 / Claus Gittinger"
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2730
! !
54027288924c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8926
diff changeset
  2731
3884
dc9ea4cfc963 method category rename
Claus Gittinger <cg@exept.de>
parents: 3859
diff changeset
  2732
!DisplaySurface methodsFor:'initialization & release'!
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2733
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2734
destroy
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2735
    "view is about to be destroyed -
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2736
     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
  2737
     then the view is physically destroyed."
4291
85475200669d nil gcId before desroying GC
Stefan Vogel <sv@exept.de>
parents: 4283
diff changeset
  2738
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2739
    self
7448
e281164eb84f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7444
diff changeset
  2740
        middleButtonMenu:nil;
e281164eb84f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7444
diff changeset
  2741
        keyCommands:nil.
7449
ec17d1521d0b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7448
diff changeset
  2742
    device notNil ifTrue:[
ec17d1521d0b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7448
diff changeset
  2743
        device removeKnownView:self withId:nil.
ec17d1521d0b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7448
diff changeset
  2744
    ].
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2745
    super destroy.
2427
d03456c66c8c separated destroyView into extra method to be redefinable
Claus Gittinger <cg@exept.de>
parents: 2421
diff changeset
  2746
!
d03456c66c8c separated destroyView into extra method to be redefinable
Claus Gittinger <cg@exept.de>
parents: 2421
diff changeset
  2747
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2748
destroyed
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2749
    "view has been destroyed by someone else"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2750
4435
3704585b9706 X11-deviceHandle fix:
Claus Gittinger <cg@exept.de>
parents: 4413
diff changeset
  2751
    |id|
3704585b9706 X11-deviceHandle fix:
Claus Gittinger <cg@exept.de>
parents: 4413
diff changeset
  2752
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2753
    (id := self drawableId) notNil ifTrue:[
7444
a9589a1f5ec1 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7443
diff changeset
  2754
        gc setId:nil.
a9589a1f5ec1 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7443
diff changeset
  2755
        self graphicsDevice removeKnownView:self withId:id.
a9589a1f5ec1 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7443
diff changeset
  2756
        realized := false.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2757
    ].
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2758
    self destroy
1481
335881213805 added #isTopView query
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  2759
335881213805 added #isTopView query
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  2760
    "Modified: 22.3.1997 / 14:56:34 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2761
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2762
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2763
initCursor
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2764
    "default cursor for all views"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2765
2453
65f4faf478b0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2443
diff changeset
  2766
    cursor := Cursor normal
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2767
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2768
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2769
initStyle
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2770
    "nothing done here"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2771
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2772
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2773
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2774
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2775
initialize
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2776
    "initialize defaults"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2777
7844
6a6b44b31f29 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 7744
diff changeset
  2778
    <modifier: #super> "must be called if redefined"
6a6b44b31f29 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 7744
diff changeset
  2779
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2780
    super initialize.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2781
4137
f593548423e2 care for nil eventmask (early access ?)
werner
parents: 4136
diff changeset
  2782
    eventMask := 0.
2995
a56a68b5d25e eliminated ref to Display
Stefan Vogel <sv@exept.de>
parents: 2962
diff changeset
  2783
    device notNil ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2784
        eventMask := device defaultEventMask.
2995
a56a68b5d25e eliminated ref to Display
Stefan Vogel <sv@exept.de>
parents: 2962
diff changeset
  2785
    ].
7616
07680ebea0f2 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7556
diff changeset
  2786
    gc notNil ifTrue:[ viewBackground := gc background].
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2787
    backed := false.
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  2788
    flags := 0.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2789
    self initCursor
1252
fccb14086649 exposePending is no longer used
Claus Gittinger <cg@exept.de>
parents: 1245
diff changeset
  2790
7844
6a6b44b31f29 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 7744
diff changeset
  2791
    "Modified: / 08-02-2017 / 00:26:56 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2792
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2793
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2794
prepareForReinit
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2795
    gc notNil ifTrue:[
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2796
        gc prepareForReinit.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2797
    ].
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2798
!
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2799
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2800
reAdjustGeometry
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2801
    "sent late during snapin processing, nothing done here"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2802
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2803
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2804
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2805
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2806
recreate
3300
d7b046ccbb33 comment
Claus Gittinger <cg@exept.de>
parents: 3291
diff changeset
  2807
    "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
  2808
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2809
    viewBackground isColor ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2810
        viewBackground := viewBackground onDevice:device.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2811
    ].
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2812
    super recreate.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2813
    cursor notNil ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2814
        cursor := cursor onDevice:device.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2815
    ].
1252
fccb14086649 exposePending is no longer used
Claus Gittinger <cg@exept.de>
parents: 1245
diff changeset
  2816
1494
4faf11deec70 cursor #on: is obsoleted by #onDevice:.
Claus Gittinger <cg@exept.de>
parents: 1481
diff changeset
  2817
    "Modified: 28.3.1997 / 13:48:06 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2818
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2819
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2820
reinitStyle
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2821
    "nothing done here"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2822
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2823
    ^ self
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2824
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2825
3291
b29011aeb5a9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3290
diff changeset
  2826
releaseDeviceResources
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2827
    super destroy.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2828
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2829
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2830
!DisplaySurface methodsFor:'keyboard commands'!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2831
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2832
addActionForKey:aKey action:aBlock
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2833
    "define a keyboard command function"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2834
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2835
    |keyCommands|
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2836
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2837
    (keyCommands := self keyCommands) isNil ifTrue:[
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2838
        self keyCommands:(keyCommands := IdentityDictionary new).
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2839
    ].
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2840
    keyCommands at:aKey put:aBlock
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2841
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2842
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2843
keyCommands
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2844
    ^ self getAttribute:#keyCommands
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2845
!
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2846
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2847
keyCommands:aDictionaryOrNil
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2848
    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
  2849
!
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2850
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2851
removeActionForKey:aKey
5009
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2852
    |keyCommands|
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2853
27278b9816f7 middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5006
diff changeset
  2854
    (keyCommands := self keyCommands) notNil ifTrue:[
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2855
        keyCommands removeKey:aKey ifAbsent:nil
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2856
    ]
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2857
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2858
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2859
!DisplaySurface methodsFor:'queries'!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2860
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2861
buttonMotionEventPending
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2862
    "return true, if a button motion event is pending.
5935
6093fded5ed1 comment/format in: #buttonMotionEventPending
Claus Gittinger <cg@exept.de>
parents: 5923
diff changeset
  2863
     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
  2864
     (not even for mouse-tracking).
5935
6093fded5ed1 comment/format in: #buttonMotionEventPending
Claus Gittinger <cg@exept.de>
parents: 5923
diff changeset
  2865
     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
  2866
     but goes directly to the device instead.
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2867
     Actually, its a historical leftover"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2868
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2869
    device flush.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2870
    ^ device eventPending:#buttonMotion for:gc drawableId
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2871
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2872
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2873
buttonReleaseEventPending
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2874
    "return true, if a button release event is pending.
7655
c87e0bbb16f5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7631
diff changeset
  2875
     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
  2876
     goes directly to the device instead.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2877
     Actually, its a historical leftover"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2878
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2879
    device flush.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2880
    ^ device eventPending:#buttonRelease for:gc drawableId
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2881
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2882
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2883
exposeEventPending
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2884
    "return true, if an expose event is pending."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2885
4221
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
  2886
    |windowGroup|
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
  2887
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
  2888
    windowGroup := self windowGroup.
666dea8f4aa7 Do not move messages to superclass (where they are sent)
Stefan Vogel <sv@exept.de>
parents: 4210
diff changeset
  2889
    windowGroup notNil ifTrue:[
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  2890
        (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
  2891
    ].
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7410
diff changeset
  2892
    ^ device eventPending:#expose for:gc drawableId
2352
548f567b1454 fixed #exposeEventPending
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2893
548f567b1454 fixed #exposeEventPending
Claus Gittinger <cg@exept.de>
parents: 2342
diff changeset
  2894
    "Modified: / 15.9.1998 / 23:18:16 / cg"
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2895
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2896
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2897
redrawsFull
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2898
    ^ false
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2899
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2900
    "Created: 4.3.1996 / 14:17:22 / cg"
3674
2d18a78198af getKeyBoardFocus
Stefan Vogel <sv@exept.de>
parents: 3639
diff changeset
  2901
!
2d18a78198af getKeyBoardFocus
Stefan Vogel <sv@exept.de>
parents: 3639
diff changeset
  2902
2d18a78198af getKeyBoardFocus
Stefan Vogel <sv@exept.de>
parents: 3639
diff changeset
  2903
shown
2d18a78198af getKeyBoardFocus
Stefan Vogel <sv@exept.de>
parents: 3639
diff changeset
  2904
    "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
  2905
     (I am mapped and not completely covered).
3674
2d18a78198af getKeyBoardFocus
Stefan Vogel <sv@exept.de>
parents: 3639
diff changeset
  2906
     Assumed that I am always visible when realized."
2d18a78198af getKeyBoardFocus
Stefan Vogel <sv@exept.de>
parents: 3639
diff changeset
  2907
2d18a78198af getKeyBoardFocus
Stefan Vogel <sv@exept.de>
parents: 3639
diff changeset
  2908
    ^ realized
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2909
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2910
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2911
!DisplaySurface methodsFor:'queries-contents'!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2912
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2913
heightOfContents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2914
    "return the height of the contents in pixels.
7691
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
  2915
     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
  2916
     This will make your scrollbars show 100%-visible.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2917
     Must be redefined in subviews to make scrollbars really work."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2918
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2919
    ^ self height
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2920
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2921
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2922
widthOfContents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2923
    "return the width of the contents in pixels.
7691
74f08e5f04fd #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7687
diff changeset
  2924
     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
  2925
     This will make your scrollbars show 100%-visible.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2926
     Must be redefined in subviews to make scrollbars really work."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2927
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2928
    ^ self width
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2929
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2930
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2931
xOriginOfContents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2932
    "return the x-origin of the contents in pixels.
7655
c87e0bbb16f5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7631
diff changeset
  2933
     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
  2934
     Must be redefined in subviews to make scrollbars really work."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2935
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2936
    ^ 0
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2937
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2938
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2939
yOriginOfContents
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2940
    "return the y-origin of the contents in pixels.
7655
c87e0bbb16f5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7631
diff changeset
  2941
     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
  2942
     Must be redefined in subviews to make scrollbars really work."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2943
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2944
    ^ 0
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2945
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2946
7734
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2947
!DisplaySurface methodsFor:'testing'!
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2948
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2949
isDebugView
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2950
    ^ false
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2951
!
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2952
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2953
isPopUpView
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2954
    "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
  2955
     usually this is true for alertBoxes etc."
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2956
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2957
    ^ false
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2958
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2959
    "Created: / 22.1.1998 / 15:01:32 / stefan"
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2960
!
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2961
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2962
isRootView
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2963
    "return true, if the receiver is a root view
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2964
     false is returned here, this is only redefined in DisplayRootView."
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2965
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2966
    ^ false
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2967
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2968
    "Modified: 28.5.1996 / 19:27:34 / cg"
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2969
    "Created: 5.7.1996 / 14:58:55 / cg"
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2970
!
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2971
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2972
isTopView
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2973
    "return true, if the receiver is some kind of topview;
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2974
     false is returned here; redefined in some subclasses."
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2975
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2976
    ^ false
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2977
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2978
    "Modified: 28.5.1996 / 19:27:34 / cg"
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2979
    "Created: 22.3.1997 / 14:45:29 / cg"
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2980
!
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2981
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2982
isView
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2983
    "return true, if the receiver is some kind of view;
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2984
     true is returned here."
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2985
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2986
    ^ true
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2987
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2988
    "Modified: 28.5.1996 / 19:27:34 / cg"
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2989
! !
8b7c5c0b7562 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7702
diff changeset
  2990
3276
9ed39f7e7282 category change
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  2991
!DisplaySurface methodsFor:'user interaction & notifications'!
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2992
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2993
beep
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2994
    "output an audible beep or bell on my screen device"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  2995
8257
94cdb2927cb3 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8254
diff changeset
  2996
    device beep
94cdb2927cb3 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8254
diff changeset
  2997
94cdb2927cb3 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8254
diff changeset
  2998
    "Created: 28.5.1996 / 16:16:13 / cg"
94cdb2927cb3 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8254
diff changeset
  2999
    "Modified: 28.5.1996 / 16:58:25 / cg"
94cdb2927cb3 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8254
diff changeset
  3000
!
94cdb2927cb3 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8254
diff changeset
  3001
94cdb2927cb3 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8254
diff changeset
  3002
beepInEditor
8259
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  3003
    "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
  3004
9328dbbffcb9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  3005
     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
  3006
     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
  3007
     Can be disabled via the settings if too annoying"
8257
94cdb2927cb3 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8254
diff changeset
  3008
94cdb2927cb3 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 8254
diff changeset
  3009
    device beepInEditor
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3010
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3011
    "Created: 28.5.1996 / 16:16:13 / cg"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3012
    "Modified: 28.5.1996 / 16:58:25 / cg"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3013
!
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3014
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3015
showActivity:aMessage
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3016
    "this is sent indirectly by the activityNotification mechanism.
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3017
     Defined here as a fallback, if ever sent to non topviews."
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3018
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3019
    Transcript showCR:aMessage
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3020
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3021
    "Modified: 18.5.1996 / 15:44:33 / cg"
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3022
! !
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3023
1093
18ea3ccf5d2f category rename
Claus Gittinger <cg@exept.de>
parents: 1074
diff changeset
  3024
!DisplaySurface class methodsFor:'documentation'!
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3025
6710
6ce1df2b8b60 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6692
diff changeset
  3026
version
6937
1acef4941601 #FEATURE
Stefan Vogel <sv@exept.de>
parents: 6828
diff changeset
  3027
    ^ '$Header$'
6710
6ce1df2b8b60 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6692
diff changeset
  3028
!
6ce1df2b8b60 class: DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 6692
diff changeset
  3029
5458
f7eb9d9c7e8d comment/format in:5 methods
Claus Gittinger <cg@exept.de>
parents: 5344
diff changeset
  3030
version_CVS
6937
1acef4941601 #FEATURE
Stefan Vogel <sv@exept.de>
parents: 6828
diff changeset
  3031
    ^ '$Header$'
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  3032
! !
3791
a9342b99295c Fix clipboard handling.
Stefan Vogel <sv@exept.de>
parents: 3699
diff changeset
  3033
6063
8a24160002a1 refactored
Claus Gittinger <cg@exept.de>
parents: 5961
diff changeset
  3034
3211
0669c01aa5a5 removeKey:ifAbsent:
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
  3035
DisplaySurface initialize!