PseudoV.st
author Claus Gittinger <cg@exept.de>
Sat, 27 Jan 1996 16:35:09 +0100
changeset 385 15fd1c806d2a
parent 373 79d3a565ca9f
child 488 97f384f5e2aa
permissions -rw-r--r--
pass info if focus change was explicit (i.e. Tab-key) or by window manager.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
48194c26a46c Initial revision
claus
parents:
diff changeset
     1
"
6
7ee0cfde237d *** empty log message ***
claus
parents: 5
diff changeset
     2
 COPYRIGHT (c) 1992 by Claus Gittinger
72
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
     3
	      All Rights Reserved
0
48194c26a46c Initial revision
claus
parents:
diff changeset
     4
48194c26a46c Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
48194c26a46c Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
48194c26a46c Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
48194c26a46c Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
48194c26a46c Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
48194c26a46c Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
48194c26a46c Initial revision
claus
parents:
diff changeset
    11
"
48194c26a46c Initial revision
claus
parents:
diff changeset
    12
48194c26a46c Initial revision
claus
parents:
diff changeset
    13
DeviceDrawable subclass:#PseudoView
316
95f8727893a4 new entry: #cursor:now:
Claus Gittinger <cg@exept.de>
parents: 269
diff changeset
    14
	instanceVariableNames:'viewBackground cursor eventMask middleButtonMenu keyCommands
95f8727893a4 new entry: #cursor:now:
Claus Gittinger <cg@exept.de>
parents: 269
diff changeset
    15
		gotExpose exposePending backed saveUnder delegate'
95f8727893a4 new entry: #cursor:now:
Claus Gittinger <cg@exept.de>
parents: 269
diff changeset
    16
	classVariableNames:''
95f8727893a4 new entry: #cursor:now:
Claus Gittinger <cg@exept.de>
parents: 269
diff changeset
    17
	poolDictionaries:''
95f8727893a4 new entry: #cursor:now:
Claus Gittinger <cg@exept.de>
parents: 269
diff changeset
    18
	category:'Views-Basic'
0
48194c26a46c Initial revision
claus
parents:
diff changeset
    19
!
48194c26a46c Initial revision
claus
parents:
diff changeset
    20
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
    21
!PseudoView class methodsFor:'documentation'!
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
    22
46
7b331e9012fd *** empty log message ***
claus
parents: 40
diff changeset
    23
copyright
7b331e9012fd *** empty log message ***
claus
parents: 40
diff changeset
    24
"
7b331e9012fd *** empty log message ***
claus
parents: 40
diff changeset
    25
 COPYRIGHT (c) 1992 by Claus Gittinger
72
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
    26
	      All Rights Reserved
46
7b331e9012fd *** empty log message ***
claus
parents: 40
diff changeset
    27
7b331e9012fd *** empty log message ***
claus
parents: 40
diff changeset
    28
 This software is furnished under a license and may be used
7b331e9012fd *** empty log message ***
claus
parents: 40
diff changeset
    29
 only in accordance with the terms of that license and with the
7b331e9012fd *** empty log message ***
claus
parents: 40
diff changeset
    30
 inclusion of the above copyright notice.   This software may not
7b331e9012fd *** empty log message ***
claus
parents: 40
diff changeset
    31
 be provided or otherwise made available to, or used by, any
7b331e9012fd *** empty log message ***
claus
parents: 40
diff changeset
    32
 other person.  No title to or ownership of the software is
7b331e9012fd *** empty log message ***
claus
parents: 40
diff changeset
    33
 hereby transferred.
7b331e9012fd *** empty log message ***
claus
parents: 40
diff changeset
    34
"
7b331e9012fd *** empty log message ***
claus
parents: 40
diff changeset
    35
!
7b331e9012fd *** empty log message ***
claus
parents: 40
diff changeset
    36
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
    37
documentation
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
    38
"
59
d83c23755711 *** empty log message ***
claus
parents: 54
diff changeset
    39
    this abstract class describes stuff common to any Window on a display 
d83c23755711 *** empty log message ***
claus
parents: 54
diff changeset
    40
    device. i.e. RootWindow, TopWindows, PopUps and Subwindows.
d83c23755711 *** empty log message ***
claus
parents: 54
diff changeset
    41
    That is, they have a viewBackground, cursor etc. and especially events.
d83c23755711 *** empty log message ***
claus
parents: 54
diff changeset
    42
    A special feature is the delegate field, which allows key- and button 
d83c23755711 *** empty log message ***
claus
parents: 54
diff changeset
    43
    events to be stolen from a view. 
d83c23755711 *** empty log message ***
claus
parents: 54
diff changeset
    44
    If the delegate is non-nil, these events will be sent to it instead.
d83c23755711 *** empty log message ***
claus
parents: 54
diff changeset
    45
    So you can change a views behavior even if it was not initially designed 
d83c23755711 *** empty log message ***
claus
parents: 54
diff changeset
    46
    for it. Also, controller functionality could be simulated using delegates.
d83c23755711 *** empty log message ***
claus
parents: 54
diff changeset
    47
d83c23755711 *** empty log message ***
claus
parents: 54
diff changeset
    48
    instance variables:
d83c23755711 *** empty log message ***
claus
parents: 54
diff changeset
    49
72
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
    50
	viewBackground  <Color|Form|Image>      the views background
59
d83c23755711 *** empty log message ***
claus
parents: 54
diff changeset
    51
72
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
    52
	cursor          <Cursor>                the cursor
59
d83c23755711 *** empty log message ***
claus
parents: 54
diff changeset
    53
72
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
    54
	eventMask                               mask specifying the enabled
59
d83c23755711 *** empty log message ***
claus
parents: 54
diff changeset
    55
						events.
d83c23755711 *** empty log message ***
claus
parents: 54
diff changeset
    56
72
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
    57
	middleButtonMenu                        a popup menu for the middle
59
d83c23755711 *** empty log message ***
claus
parents: 54
diff changeset
    58
						button.
d83c23755711 *** empty log message ***
claus
parents: 54
diff changeset
    59
72
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
    60
	keyCommands                             not yet supported
59
d83c23755711 *** empty log message ***
claus
parents: 54
diff changeset
    61
72
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
    62
	gotExpose                               for exposure handling after
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
    63
	exposePending                           after a scroll
59
d83c23755711 *** empty log message ***
claus
parents: 54
diff changeset
    64
72
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
    65
	backed                                  true if backing store for that
59
d83c23755711 *** empty log message ***
claus
parents: 54
diff changeset
    66
						view is enabled
d83c23755711 *** empty log message ***
claus
parents: 54
diff changeset
    67
72
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
    68
	saveUnder                               true if saveunder store for 
59
d83c23755711 *** empty log message ***
claus
parents: 54
diff changeset
    69
						that view is enabled
d83c23755711 *** empty log message ***
claus
parents: 54
diff changeset
    70
72
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
    71
	delegate                                for event delegation
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
    72
"
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
    73
! !
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
    74
0
48194c26a46c Initial revision
claus
parents:
diff changeset
    75
!PseudoView methodsFor:'accessing'!
48194c26a46c Initial revision
claus
parents:
diff changeset
    76
48194c26a46c Initial revision
claus
parents:
diff changeset
    77
depth
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
    78
    "return the depth in pixels of the view.
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
    79
     Notice, that this is currently the devices depth, 
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
    80
     but support for mixed depth views is being prepared.
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
    81
     (especially useful on SGI, with 24bit view)"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
    82
48194c26a46c Initial revision
claus
parents:
diff changeset
    83
    ^ device depth
48194c26a46c Initial revision
claus
parents:
diff changeset
    84
!
48194c26a46c Initial revision
claus
parents:
diff changeset
    85
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
    86
insideColor:aColor
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
    87
    "set the views background color - ST-80 compatibility"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
    88
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
    89
    self viewBackground:aColor.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
    90
    self background:aColor
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
    91
!
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
    92
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
    93
setViewBackground
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
    94
    "install the viewBackground for the receiver on the device"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
    95
48194c26a46c Initial revision
claus
parents:
diff changeset
    96
    |id devBgPixmap bgPixmap w h colors|
48194c26a46c Initial revision
claus
parents:
diff changeset
    97
48194c26a46c Initial revision
claus
parents:
diff changeset
    98
    drawableId notNil ifTrue:[
72
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
    99
	viewBackground isColor ifTrue:[
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   100
	    viewBackground := viewBackground on:device.
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   101
	    id := viewBackground colorId.
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   102
	    "
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   103
	     a real color (i.e. one supported by the device) ?
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   104
	    "
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   105
	    id notNil ifTrue:[
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   106
		device setWindowBackground:id in:drawableId.
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   107
		^ self
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   108
	    ].
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   109
	    "
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   110
	     no, a dithered one - must have a dither-pattern
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   111
	     (which is ready for the device, since viewBackground
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   112
	      is already assigned to the device)
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   113
	    "
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   114
	    bgPixmap := viewBackground ditherForm.
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   115
	] ifFalse:[
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   116
	    "
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   117
	     assume, it can convert itself to a form
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   118
	    "
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   119
	    bgPixmap := viewBackground asFormOn:device
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   120
	].
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   121
72
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   122
	"
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   123
	 must now have:
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   124
	 a dithered color or bitmap or pixmap
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   125
	"
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   126
	bgPixmap isNil ifTrue:[
145
claus
parents: 141
diff changeset
   127
	    'PSEUDOVIEW: background not convertable - ignored' errorPrintNL.
72
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   128
	    ^ self
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   129
	].
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   130
72
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   131
	w := bgPixmap width.
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   132
	h := bgPixmap height.
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   133
72
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   134
	(bgPixmap depth ~~ device depth) ifTrue:[
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   135
	    (bgPixmap depth ~~ 1) ifTrue:[
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   136
		self error:'bad dither depth'.
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   137
		^ self
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   138
	    ].
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   139
	    "
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   140
	     convert it into a deep form
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   141
	    "
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   142
	    colors := bgPixmap colorMap.
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   143
	    devBgPixmap := Form width:w height:h depth:(device depth) on:device.
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   144
	    devBgPixmap paint:(colors at:1).
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   145
	    devBgPixmap fillRectangleX:0 y:0 width:w height:h.
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   146
	    devBgPixmap foreground:(colors at:2) background:(colors at:1).
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   147
	    devBgPixmap copyPlaneFrom:bgPixmap x:0 y:0 toX:0 y:0 width:w height:h.
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   148
	    bgPixmap := devBgPixmap.
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   149
	] ifFalse:[
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   150
	    (bgPixmap depth == 1) ifTrue:[
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   151
		"
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   152
		 although depth matches,
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   153
		 values in the dither are to be interpreted via the ditherForms
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   154
		 colormap, which is not always the same as blackpixel/whitepixel ...
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   155
		"
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   156
		(bgPixmap colorMap at:1) colorId == device whitepixel ifTrue:[
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   157
		    (bgPixmap colorMap at:2) colorId == device blackpixel ifTrue:[
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   158
			"
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   159
			 ok, can use it
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   160
			"
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   161
			device setWindowBackgroundPixmap:(bgPixmap id) in:drawableId.
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   162
			^ self
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   163
		    ]
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   164
		].
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   165
72
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   166
		"
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   167
		 no, must invert it
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   168
		"
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   169
		devBgPixmap := Form width:w height:h depth:(device depth) on:device.
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   170
		devBgPixmap paint:(bgPixmap colorMap at:2) on:(bgPixmap colorMap at:1).
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   171
		devBgPixmap copyPlaneFrom:bgPixmap x:0 y:0 toX:0 y:0 width:w height:h.
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   172
		bgPixmap := devBgPixmap.
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   173
	    ]
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   174
	].
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   175
	device setWindowBackgroundPixmap:(bgPixmap id) in:drawableId.
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   176
    ]
48194c26a46c Initial revision
claus
parents:
diff changeset
   177
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   178
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   179
viewBackground
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   180
    "return the viewBackground"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   181
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   182
    ^ viewBackground
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   183
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   184
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   185
viewBackground:something
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   186
    "set the viewBackground to something, a color, image or form.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   187
     The viewBackground is the color or pattern with which exposed
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   188
     regions are filled - do not confuse this with the drawing background
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   189
     color, which is used with opaque drawing."
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   190
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   191
    viewBackground ~~ something ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   192
	viewBackground := something.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   193
	drawableId notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   194
	    self setViewBackground
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   195
	]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   196
    ]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   197
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   198
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   199
viewGravity
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   200
    "return the views gravity"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   201
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   202
    ^ #NorthWest
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   203
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   204
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   205
viewOrigin
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   206
    "0@0 here, since by default we cannot be scrolled"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   207
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   208
    ^ 0 @ 0
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   209
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   210
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   211
widget
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   212
    "ST-80 compatibility"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   213
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   214
    ^ self
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   215
! !
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   216
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   217
!PseudoView methodsFor:'accessing-cursor'!
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   218
48194c26a46c Initial revision
claus
parents:
diff changeset
   219
cursor
48194c26a46c Initial revision
claus
parents:
diff changeset
   220
    "return the views cursor"
48194c26a46c Initial revision
claus
parents:
diff changeset
   221
48194c26a46c Initial revision
claus
parents:
diff changeset
   222
    ^ cursor
48194c26a46c Initial revision
claus
parents:
diff changeset
   223
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   224
48194c26a46c Initial revision
claus
parents:
diff changeset
   225
cursor:aCursor
141
claus
parents: 140
diff changeset
   226
    "set the views cursor. This cursor will be automatically displayed whenever 
claus
parents: 140
diff changeset
   227
     the mouse-pointer enters the receiver. 
claus
parents: 140
diff changeset
   228
     Cursors are typically set at view creation time and left as installed."
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   229
316
95f8727893a4 new entry: #cursor:now:
Claus Gittinger <cg@exept.de>
parents: 269
diff changeset
   230
    self cursor:aCursor now:true
95f8727893a4 new entry: #cursor:now:
Claus Gittinger <cg@exept.de>
parents: 269
diff changeset
   231
95f8727893a4 new entry: #cursor:now:
Claus Gittinger <cg@exept.de>
parents: 269
diff changeset
   232
    "
95f8727893a4 new entry: #cursor:now:
Claus Gittinger <cg@exept.de>
parents: 269
diff changeset
   233
     |v|
95f8727893a4 new entry: #cursor:now:
Claus Gittinger <cg@exept.de>
parents: 269
diff changeset
   234
95f8727893a4 new entry: #cursor:now:
Claus Gittinger <cg@exept.de>
parents: 269
diff changeset
   235
     v := View new.
95f8727893a4 new entry: #cursor:now:
Claus Gittinger <cg@exept.de>
parents: 269
diff changeset
   236
     v cursor:(Cursor wait).
95f8727893a4 new entry: #cursor:now:
Claus Gittinger <cg@exept.de>
parents: 269
diff changeset
   237
     v open.
95f8727893a4 new entry: #cursor:now:
Claus Gittinger <cg@exept.de>
parents: 269
diff changeset
   238
     [v shown] whileFalse:[Processor yield].
95f8727893a4 new entry: #cursor:now:
Claus Gittinger <cg@exept.de>
parents: 269
diff changeset
   239
     [v shown] whileTrue:[   
385
15fd1c806d2a pass info if focus change was explicit (i.e. Tab-key) or by window manager.
Claus Gittinger <cg@exept.de>
parents: 373
diff changeset
   240
	(Delay forSeconds:1) wait.
15fd1c806d2a pass info if focus change was explicit (i.e. Tab-key) or by window manager.
Claus Gittinger <cg@exept.de>
parents: 373
diff changeset
   241
	v cursor:(Cursor normal).
15fd1c806d2a pass info if focus change was explicit (i.e. Tab-key) or by window manager.
Claus Gittinger <cg@exept.de>
parents: 373
diff changeset
   242
	(Delay forSeconds:1) wait.
15fd1c806d2a pass info if focus change was explicit (i.e. Tab-key) or by window manager.
Claus Gittinger <cg@exept.de>
parents: 373
diff changeset
   243
	v cursor:(Cursor wait).
316
95f8727893a4 new entry: #cursor:now:
Claus Gittinger <cg@exept.de>
parents: 269
diff changeset
   244
     ]
95f8727893a4 new entry: #cursor:now:
Claus Gittinger <cg@exept.de>
parents: 269
diff changeset
   245
    "
95f8727893a4 new entry: #cursor:now:
Claus Gittinger <cg@exept.de>
parents: 269
diff changeset
   246
95f8727893a4 new entry: #cursor:now:
Claus Gittinger <cg@exept.de>
parents: 269
diff changeset
   247
    "Modified: 14.12.1995 / 21:28:14 / cg"
95f8727893a4 new entry: #cursor:now:
Claus Gittinger <cg@exept.de>
parents: 269
diff changeset
   248
!
95f8727893a4 new entry: #cursor:now:
Claus Gittinger <cg@exept.de>
parents: 269
diff changeset
   249
95f8727893a4 new entry: #cursor:now:
Claus Gittinger <cg@exept.de>
parents: 269
diff changeset
   250
cursor:aCursor now:showImmediately
95f8727893a4 new entry: #cursor:now:
Claus Gittinger <cg@exept.de>
parents: 269
diff changeset
   251
    "set the views cursor. This cursor will be automatically displayed whenever 
95f8727893a4 new entry: #cursor:now:
Claus Gittinger <cg@exept.de>
parents: 269
diff changeset
   252
     the mouse-pointer enters the receiver. 
95f8727893a4 new entry: #cursor:now:
Claus Gittinger <cg@exept.de>
parents: 269
diff changeset
   253
     Cursors are typically set at view creation time and left as installed."
95f8727893a4 new entry: #cursor:now:
Claus Gittinger <cg@exept.de>
parents: 269
diff changeset
   254
2
b35336ab0de3 *** empty log message ***
claus
parents: 0
diff changeset
   255
    |id|
b35336ab0de3 *** empty log message ***
claus
parents: 0
diff changeset
   256
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   257
    aCursor notNil ifTrue:[
385
15fd1c806d2a pass info if focus change was explicit (i.e. Tab-key) or by window manager.
Claus Gittinger <cg@exept.de>
parents: 373
diff changeset
   258
	(aCursor ~~ cursor) ifTrue:[
15fd1c806d2a pass info if focus change was explicit (i.e. Tab-key) or by window manager.
Claus Gittinger <cg@exept.de>
parents: 373
diff changeset
   259
	    cursor := aCursor.
15fd1c806d2a pass info if focus change was explicit (i.e. Tab-key) or by window manager.
Claus Gittinger <cg@exept.de>
parents: 373
diff changeset
   260
	    drawableId notNil ifTrue:[
15fd1c806d2a pass info if focus change was explicit (i.e. Tab-key) or by window manager.
Claus Gittinger <cg@exept.de>
parents: 373
diff changeset
   261
		cursor := cursor on:device.
343
f5d86df5c66b dont care for nil cursors
Claus Gittinger <cg@exept.de>
parents: 320
diff changeset
   262
		cursor isNil ifTrue:[ ^ self].
385
15fd1c806d2a pass info if focus change was explicit (i.e. Tab-key) or by window manager.
Claus Gittinger <cg@exept.de>
parents: 373
diff changeset
   263
		id := cursor id.
15fd1c806d2a pass info if focus change was explicit (i.e. Tab-key) or by window manager.
Claus Gittinger <cg@exept.de>
parents: 373
diff changeset
   264
		id isNil ifTrue:[
15fd1c806d2a pass info if focus change was explicit (i.e. Tab-key) or by window manager.
Claus Gittinger <cg@exept.de>
parents: 373
diff changeset
   265
		    'PSEUDOVIEW: nil cursorId ignored; shape=' errorPrint. cursor shape errorPrintNL.
15fd1c806d2a pass info if focus change was explicit (i.e. Tab-key) or by window manager.
Claus Gittinger <cg@exept.de>
parents: 373
diff changeset
   266
		    ^ self
15fd1c806d2a pass info if focus change was explicit (i.e. Tab-key) or by window manager.
Claus Gittinger <cg@exept.de>
parents: 373
diff changeset
   267
		].
15fd1c806d2a pass info if focus change was explicit (i.e. Tab-key) or by window manager.
Claus Gittinger <cg@exept.de>
parents: 373
diff changeset
   268
		device setCursor:id in:drawableId.
15fd1c806d2a pass info if focus change was explicit (i.e. Tab-key) or by window manager.
Claus Gittinger <cg@exept.de>
parents: 373
diff changeset
   269
		(showImmediately and:[realized]) ifTrue:[
15fd1c806d2a pass info if focus change was explicit (i.e. Tab-key) or by window manager.
Claus Gittinger <cg@exept.de>
parents: 373
diff changeset
   270
		    "flush, to make cursor immediately visible"
15fd1c806d2a pass info if focus change was explicit (i.e. Tab-key) or by window manager.
Claus Gittinger <cg@exept.de>
parents: 373
diff changeset
   271
		    device flush
15fd1c806d2a pass info if focus change was explicit (i.e. Tab-key) or by window manager.
Claus Gittinger <cg@exept.de>
parents: 373
diff changeset
   272
		]
15fd1c806d2a pass info if focus change was explicit (i.e. Tab-key) or by window manager.
Claus Gittinger <cg@exept.de>
parents: 373
diff changeset
   273
	    ]
15fd1c806d2a pass info if focus change was explicit (i.e. Tab-key) or by window manager.
Claus Gittinger <cg@exept.de>
parents: 373
diff changeset
   274
	]
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   275
    ]
141
claus
parents: 140
diff changeset
   276
claus
parents: 140
diff changeset
   277
    "
claus
parents: 140
diff changeset
   278
     |v|
claus
parents: 140
diff changeset
   279
claus
parents: 140
diff changeset
   280
     v := View new.
claus
parents: 140
diff changeset
   281
     v cursor:(Cursor wait).
claus
parents: 140
diff changeset
   282
     v open.
claus
parents: 140
diff changeset
   283
     [v shown] whileFalse:[Processor yield].
claus
parents: 140
diff changeset
   284
     [v shown] whileTrue:[   
385
15fd1c806d2a pass info if focus change was explicit (i.e. Tab-key) or by window manager.
Claus Gittinger <cg@exept.de>
parents: 373
diff changeset
   285
	(Delay forSeconds:1) wait.
15fd1c806d2a pass info if focus change was explicit (i.e. Tab-key) or by window manager.
Claus Gittinger <cg@exept.de>
parents: 373
diff changeset
   286
	v cursor:(Cursor normal).
15fd1c806d2a pass info if focus change was explicit (i.e. Tab-key) or by window manager.
Claus Gittinger <cg@exept.de>
parents: 373
diff changeset
   287
	(Delay forSeconds:1) wait.
15fd1c806d2a pass info if focus change was explicit (i.e. Tab-key) or by window manager.
Claus Gittinger <cg@exept.de>
parents: 373
diff changeset
   288
	v cursor:(Cursor wait).
141
claus
parents: 140
diff changeset
   289
     ]
claus
parents: 140
diff changeset
   290
    "
316
95f8727893a4 new entry: #cursor:now:
Claus Gittinger <cg@exept.de>
parents: 269
diff changeset
   291
95f8727893a4 new entry: #cursor:now:
Claus Gittinger <cg@exept.de>
parents: 269
diff changeset
   292
    "Created: 14.12.1995 / 21:28:00 / cg"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   293
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   294
48194c26a46c Initial revision
claus
parents:
diff changeset
   295
withCursor:aCursor do:aBlock
160
claus
parents: 151
diff changeset
   296
    "evaluate aBlock showing aCursor until ready; then restore the old cursor
claus
parents: 151
diff changeset
   297
     and return the value as returned by aBlock.
claus
parents: 151
diff changeset
   298
claus
parents: 151
diff changeset
   299
     Notice, that this method only changes the cursor for a SINGLE (sub-)view.
claus
parents: 151
diff changeset
   300
     Most applications want to have the cursor changed in all views of its
claus
parents: 151
diff changeset
   301
     application. Use 'aView windowGroup withCursor:do:' to acomplish this."
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   302
48194c26a46c Initial revision
claus
parents:
diff changeset
   303
    |savedCursor|
48194c26a46c Initial revision
claus
parents:
diff changeset
   304
48194c26a46c Initial revision
claus
parents:
diff changeset
   305
    savedCursor := cursor.
48194c26a46c Initial revision
claus
parents:
diff changeset
   306
    self cursor:aCursor.
160
claus
parents: 151
diff changeset
   307
    ^ aBlock valueNowOrOnUnwindDo:[self cursor:savedCursor]
359
fc8d3db46d29 moved withWaitCursorDo: from TopView to here
Claus Gittinger <cg@exept.de>
parents: 343
diff changeset
   308
!
fc8d3db46d29 moved withWaitCursorDo: from TopView to here
Claus Gittinger <cg@exept.de>
parents: 343
diff changeset
   309
360
9785d77aa3a8 moved withReadCursorDo: / withExecuteCursor to here
Claus Gittinger <cg@exept.de>
parents: 359
diff changeset
   310
withExecuteCursorDo:aBlock
9785d77aa3a8 moved withReadCursorDo: / withExecuteCursor to here
Claus Gittinger <cg@exept.de>
parents: 359
diff changeset
   311
    "evaluate aBlock while showing an execute cursor in all my views.
9785d77aa3a8 moved withReadCursorDo: / withExecuteCursor to here
Claus Gittinger <cg@exept.de>
parents: 359
diff changeset
   312
     Return the value as returned by aBlock."
9785d77aa3a8 moved withReadCursorDo: / withExecuteCursor to here
Claus Gittinger <cg@exept.de>
parents: 359
diff changeset
   313
9785d77aa3a8 moved withReadCursorDo: / withExecuteCursor to here
Claus Gittinger <cg@exept.de>
parents: 359
diff changeset
   314
    ^ self withCursor:(Cursor execute) do:aBlock
9785d77aa3a8 moved withReadCursorDo: / withExecuteCursor to here
Claus Gittinger <cg@exept.de>
parents: 359
diff changeset
   315
9785d77aa3a8 moved withReadCursorDo: / withExecuteCursor to here
Claus Gittinger <cg@exept.de>
parents: 359
diff changeset
   316
    "Created: 10.1.1996 / 13:53:03 / cg"
9785d77aa3a8 moved withReadCursorDo: / withExecuteCursor to here
Claus Gittinger <cg@exept.de>
parents: 359
diff changeset
   317
!
9785d77aa3a8 moved withReadCursorDo: / withExecuteCursor to here
Claus Gittinger <cg@exept.de>
parents: 359
diff changeset
   318
9785d77aa3a8 moved withReadCursorDo: / withExecuteCursor to here
Claus Gittinger <cg@exept.de>
parents: 359
diff changeset
   319
withReadCursorDo:aBlock
9785d77aa3a8 moved withReadCursorDo: / withExecuteCursor to here
Claus Gittinger <cg@exept.de>
parents: 359
diff changeset
   320
    "evaluate aBlock while showing a readCursor in all my views.
9785d77aa3a8 moved withReadCursorDo: / withExecuteCursor to here
Claus Gittinger <cg@exept.de>
parents: 359
diff changeset
   321
     Return the value as returned by aBlock."
9785d77aa3a8 moved withReadCursorDo: / withExecuteCursor to here
Claus Gittinger <cg@exept.de>
parents: 359
diff changeset
   322
9785d77aa3a8 moved withReadCursorDo: / withExecuteCursor to here
Claus Gittinger <cg@exept.de>
parents: 359
diff changeset
   323
    ^ self withCursor:(Cursor read) do:aBlock
9785d77aa3a8 moved withReadCursorDo: / withExecuteCursor to here
Claus Gittinger <cg@exept.de>
parents: 359
diff changeset
   324
9785d77aa3a8 moved withReadCursorDo: / withExecuteCursor to here
Claus Gittinger <cg@exept.de>
parents: 359
diff changeset
   325
    "Modified: 14.12.1995 / 20:57:40 / cg"
9785d77aa3a8 moved withReadCursorDo: / withExecuteCursor to here
Claus Gittinger <cg@exept.de>
parents: 359
diff changeset
   326
    "Created: 10.1.1996 / 13:52:52 / cg"
9785d77aa3a8 moved withReadCursorDo: / withExecuteCursor to here
Claus Gittinger <cg@exept.de>
parents: 359
diff changeset
   327
!
9785d77aa3a8 moved withReadCursorDo: / withExecuteCursor to here
Claus Gittinger <cg@exept.de>
parents: 359
diff changeset
   328
359
fc8d3db46d29 moved withWaitCursorDo: from TopView to here
Claus Gittinger <cg@exept.de>
parents: 343
diff changeset
   329
withWaitCursorDo:aBlock
fc8d3db46d29 moved withWaitCursorDo: from TopView to here
Claus Gittinger <cg@exept.de>
parents: 343
diff changeset
   330
    "evaluate aBlock while showing a waitCursor in all my views.
fc8d3db46d29 moved withWaitCursorDo: from TopView to here
Claus Gittinger <cg@exept.de>
parents: 343
diff changeset
   331
     Return the value as returned by aBlock."
fc8d3db46d29 moved withWaitCursorDo: from TopView to here
Claus Gittinger <cg@exept.de>
parents: 343
diff changeset
   332
fc8d3db46d29 moved withWaitCursorDo: from TopView to here
Claus Gittinger <cg@exept.de>
parents: 343
diff changeset
   333
    ^ self withCursor:(Cursor wait) do:aBlock
fc8d3db46d29 moved withWaitCursorDo: from TopView to here
Claus Gittinger <cg@exept.de>
parents: 343
diff changeset
   334
fc8d3db46d29 moved withWaitCursorDo: from TopView to here
Claus Gittinger <cg@exept.de>
parents: 343
diff changeset
   335
    "Created: 10.1.1996 / 13:51:08 / cg"
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   336
! !
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   337
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   338
!PseudoView methodsFor:'accessing-hierarchy'!
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   339
12
9f0995fac1fa *** empty log message ***
claus
parents: 6
diff changeset
   340
delegate
9f0995fac1fa *** empty log message ***
claus
parents: 6
diff changeset
   341
    "return the delegate - thats the one getting keyboard and button events"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   342
12
9f0995fac1fa *** empty log message ***
claus
parents: 6
diff changeset
   343
    ^ delegate
9f0995fac1fa *** empty log message ***
claus
parents: 6
diff changeset
   344
!
9f0995fac1fa *** empty log message ***
claus
parents: 6
diff changeset
   345
9f0995fac1fa *** empty log message ***
claus
parents: 6
diff changeset
   346
delegate:someOne
141
claus
parents: 140
diff changeset
   347
    "set the delegate - keyboard- and button events will be forwarded to
320
b7b8dc88fe9f interest is written with one 'r' (shame on me)
Claus Gittinger <cg@exept.de>
parents: 316
diff changeset
   348
     that object if it is interested in them.
141
claus
parents: 140
diff changeset
   349
     See the sendEvent... method in WindowEvent."
12
9f0995fac1fa *** empty log message ***
claus
parents: 6
diff changeset
   350
9f0995fac1fa *** empty log message ***
claus
parents: 6
diff changeset
   351
    delegate := someOne
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   352
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   353
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   354
superView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   355
    "return the superView - nil here"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   356
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   357
    ^ nil
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   358
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   359
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   360
topView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   361
    "return the topView - that the one with no superview"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   362
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   363
    ^ self
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   364
! !
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   365
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   366
!PseudoView methodsFor:'accessing-limits'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   367
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   368
maxExtent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   369
    "return the views maximum extent - this is nil here.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   370
     Only standardSystemViews support this."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   371
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   372
    ^ nil
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   373
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   374
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   375
maxExtent:extent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   376
    "set the views maximum extent - ignored here.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   377
     Only standardSystemViews support this."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   378
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   379
    ^ self
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   380
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   381
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   382
minExtent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   383
    "return the views minimum extent - this is nil here.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   384
     Only standardSystemViews support this."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   385
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   386
    ^ nil
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   387
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   388
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   389
minExtent:extent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   390
    "set the views minimum extent - ignored here.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   391
     Only standardSystemViews support this."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   392
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   393
    ^ self
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   394
! !
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   395
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   396
!PseudoView methodsFor:'accessing-misc'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   397
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   398
backingStore:how
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   399
    "turn on/off backingStore (saving my pixels)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   400
     how may true/false, but also #always, #whenMapped or #never."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   401
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   402
    how ~~ backed ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   403
	backed := how.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   404
	drawableId notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   405
	    device setBackingStore:how in:drawableId
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   406
	]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   407
    ]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   408
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   409
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   410
clipByChildren
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   411
    "drawing shall be done into my view only (default)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   412
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   413
    ^ self clippedByChildren:true
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   414
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   415
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   416
clippedByChildren:aBoolean
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   417
    "turn on/off drawing over children.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   418
     If on, a superview may draw 'over' its children.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   419
     If off (the default), drawing is 'under' its children.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   420
     Only useful for the rootView, to draw over any visible views.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   421
     (for example, when dragging a rubber-line)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   422
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   423
    gcId isNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   424
	self initGC
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   425
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   426
    device setClipByChildren:aBoolean in:gcId
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   427
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   428
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   429
eventMask
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   430
    "return a (numeric) mask of allowed events -
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   431
     this is X-specific and will be removed / replaced by symbolic values)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   432
    
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   433
    ^ eventMask
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   434
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   435
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   436
eventMask:aMask
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   437
    "set a (numeric) mask of allowed events -
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   438
     this is X-specific and will be removed / replaced by symbolic values)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   439
     
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   440
    eventMask := aMask
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   441
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   442
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   443
getKeyboardFocus
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   444
    "tell the Display to assign keyboard focus to the receiver"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   445
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   446
    drawableId notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   447
	self shown ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   448
	    device setInputFocusTo:drawableId
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   449
	]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   450
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   451
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   452
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   453
inputOnly
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   454
    "return true, if the receiver is an input only view - that is: 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   455
     the view will realize as a transparent view, into which you cannot
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   456
     draw, but get events as usual. Thich can be used to catch events away from 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   457
     others, which where never meant to work in such a setup.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   458
     (for example, if you want to manipulate views in some DrawTool-like manner).
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   459
     This uses a special X feature, which might not be supported in the near future
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   460
     or on other plattforms."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   461
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   462
    ^ false
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   463
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   464
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   465
noClipByChildren
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   466
    "drawing shall also be done into subviews"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   467
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   468
    ^ self clippedByChildren:false 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   469
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   470
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   471
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   472
preferredDepth
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   473
    "return a non nil integer, if a specific depth is wanted in this view.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   474
     Return nil if we do not care (i.e. the displays default is wanted).
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   475
     This is experimental and may change/vanish - do not use it."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   476
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   477
    ^ nil
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   478
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   479
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   480
preferredVisual
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   481
    "return a non nil id, if a specific visual is wanted in this view.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   482
     Return nil if we do not care (i.e. the displays default is wanted). 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   483
     This is experimental and may change/vanish - do not use it."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   484
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   485
    ^ nil
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   486
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   487
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   488
realized
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   489
    "return true, if the receiver is realized"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   490
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   491
    ^ realized
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   492
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   493
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   494
saveUnder:aBoolean
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   495
    "turn on/off saveUnder (saving pixels under myself)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   496
     - used for temporary views (i.e. PopUps and ModalBoxes)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   497
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   498
    saveUnder := aBoolean.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   499
    drawableId notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   500
	device setSaveUnder:aBoolean in:drawableId
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   501
    ]
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   502
! !
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   503
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   504
!PseudoView methodsFor:'accessing-names'!
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   505
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   506
icon
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   507
    "return the views icon - this is nil here.
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   508
     Only standardSystemViews support labels and icons."
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   509
48194c26a46c Initial revision
claus
parents:
diff changeset
   510
    ^ nil
48194c26a46c Initial revision
claus
parents:
diff changeset
   511
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   512
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   513
icon:aBitmap
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   514
    "set the views icon - ignored here.
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   515
     Only standardSystemViews support labels and icons."
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   516
48194c26a46c Initial revision
claus
parents:
diff changeset
   517
    ^ self
48194c26a46c Initial revision
claus
parents:
diff changeset
   518
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   519
24
e810b1be068b *** empty log message ***
claus
parents: 21
diff changeset
   520
iconLabel
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   521
    "return the views icon label - this is nil here.
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   522
     Only standardSystemViews support labels and icons."
24
e810b1be068b *** empty log message ***
claus
parents: 21
diff changeset
   523
e810b1be068b *** empty log message ***
claus
parents: 21
diff changeset
   524
    ^ nil
e810b1be068b *** empty log message ***
claus
parents: 21
diff changeset
   525
!
e810b1be068b *** empty log message ***
claus
parents: 21
diff changeset
   526
e810b1be068b *** empty log message ***
claus
parents: 21
diff changeset
   527
iconLabel:aLabel
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   528
    "set the views icon label - ignored here.
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   529
     Only standardSystemViews support labels and icons."
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   530
48194c26a46c Initial revision
claus
parents:
diff changeset
   531
    ^ self
48194c26a46c Initial revision
claus
parents:
diff changeset
   532
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   533
48194c26a46c Initial revision
claus
parents:
diff changeset
   534
iconView
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   535
    "return the views iconView - this is nil here.
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   536
     Only standardSystemViews support labels and icons."
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   537
48194c26a46c Initial revision
claus
parents:
diff changeset
   538
    ^ nil
48194c26a46c Initial revision
claus
parents:
diff changeset
   539
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   540
24
e810b1be068b *** empty log message ***
claus
parents: 21
diff changeset
   541
iconView:aView
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   542
    "set the views icon view - ignored here.
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   543
     Only standardSystemViews support labels and icons."
24
e810b1be068b *** empty log message ***
claus
parents: 21
diff changeset
   544
e810b1be068b *** empty log message ***
claus
parents: 21
diff changeset
   545
    ^ self
e810b1be068b *** empty log message ***
claus
parents: 21
diff changeset
   546
!
e810b1be068b *** empty log message ***
claus
parents: 21
diff changeset
   547
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   548
label
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   549
    "return the views label - this is nil here.
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   550
     Only standardSystemViews support labels and icons."
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   551
48194c26a46c Initial revision
claus
parents:
diff changeset
   552
    ^ nil
48194c26a46c Initial revision
claus
parents:
diff changeset
   553
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   554
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   555
label:aLabel
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   556
    "set the views label - ignored here.
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   557
     Only standardSystemViews support labels and icons."
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   558
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   559
    ^ self
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   560
! !
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   561
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   562
!PseudoView methodsFor:'binary storage'!
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   563
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   564
readBinaryContentsFrom: stream manager: manager
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   565
    "tell the newly restored View to recreate itself.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   566
     Bug: does not work correctly yet.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   567
	  (restored view looses its position & wg process)"
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   568
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   569
    super readBinaryContentsFrom: stream manager: manager.
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   570
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   571
    gcId := nil.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   572
    drawableId := nil.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   573
    self recreate.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   574
    realized ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   575
	self rerealize
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   576
    ]
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   577
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   578
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   579
     |s|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   580
     s := 'storedLabel.boss' asFilename writeStream binary.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   581
     (Label label:'hello there') realize storeBinaryOn:s.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   582
     s close.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   583
    "
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   584
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   585
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   586
     |s l|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   587
     s := 'storedLabel.boss' asFilename writeStream binary.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   588
     (l := Label label:'hello there') open.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   589
     (Delay forSeconds:10) wait.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   590
     l storeBinaryOn:s.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   591
     s close.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   592
     l destroy.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   593
    "
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   594
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   595
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   596
     |s|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   597
     s := 'storedLabel.boss' asFilename readStream binary.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   598
     (Object readBinaryFrom:s)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   599
    "
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   600
! !
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   601
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   602
!PseudoView methodsFor:'button menus'!
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   603
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   604
middleButtonMenu
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   605
    "return the menu associated with the middle mouse button"
12
9f0995fac1fa *** empty log message ***
claus
parents: 6
diff changeset
   606
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   607
    ^ middleButtonMenu
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   608
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   609
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   610
middleButtonMenu:aMenu
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   611
    "associate aMenu with the middle mouse button"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   612
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   613
    middleButtonMenu notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   614
	middleButtonMenu destroy
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   615
    ].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   616
    middleButtonMenu := aMenu
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   617
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   618
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   619
setMiddleButtonMenu:aMenu
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   620
    "associate aMenu with the middle mouse button.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   621
     Do not destroy old menu if any"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   622
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   623
    middleButtonMenu := aMenu
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   624
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
   625
48194c26a46c Initial revision
claus
parents:
diff changeset
   626
!PseudoView methodsFor:'drawing'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   627
81
4ba554473294 *** empty log message ***
claus
parents: 77
diff changeset
   628
clearDeviceRectangleX:x y:y width:w height:h
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   629
    "clear a rectangular area to viewBackground -
48194c26a46c Initial revision
claus
parents:
diff changeset
   630
     redefined since DisplayMedium fills with background
72
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   631
     - not viewBackground as we want here."
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   632
116
c0db6a8ab4ac *** empty log message ***
claus
parents: 110
diff changeset
   633
    |oldPaint org|
72
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   634
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   635
    oldPaint := paint.
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   636
    self paint:viewBackground.
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   637
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
   638
    viewBackground isColor ifFalse:[
89
ea2bf46eb669 *** empty log message ***
claus
parents: 85
diff changeset
   639
	gcId notNil ifTrue:[
116
c0db6a8ab4ac *** empty log message ***
claus
parents: 110
diff changeset
   640
	    org := self viewOrigin.
c0db6a8ab4ac *** empty log message ***
claus
parents: 110
diff changeset
   641
	    device setMaskOriginX:org x rounded negated
c0db6a8ab4ac *** empty log message ***
claus
parents: 110
diff changeset
   642
				y:org y rounded negated
89
ea2bf46eb669 *** empty log message ***
claus
parents: 85
diff changeset
   643
			       in:gcId
ea2bf46eb669 *** empty log message ***
claus
parents: 85
diff changeset
   644
	].
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   645
    ].
72
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   646
    "
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   647
     fill in device coordinates - not logical coordinates
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   648
    "
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   649
    self fillDeviceRectangleX:x y:y width:w height:h "with:viewBackground".
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   650
    self paint:oldPaint
81
4ba554473294 *** empty log message ***
claus
parents: 77
diff changeset
   651
!
4ba554473294 *** empty log message ***
claus
parents: 77
diff changeset
   652
4ba554473294 *** empty log message ***
claus
parents: 77
diff changeset
   653
clearRectangleX:x y:y width:w height:h
4ba554473294 *** empty log message ***
claus
parents: 77
diff changeset
   654
    "clear a rectangular area to viewBackground -
4ba554473294 *** empty log message ***
claus
parents: 77
diff changeset
   655
     redefined since DisplayMedium fills with background
4ba554473294 *** empty log message ***
claus
parents: 77
diff changeset
   656
     - not viewBackground as we want here."
4ba554473294 *** empty log message ***
claus
parents: 77
diff changeset
   657
116
c0db6a8ab4ac *** empty log message ***
claus
parents: 110
diff changeset
   658
    |oldPaint org|
81
4ba554473294 *** empty log message ***
claus
parents: 77
diff changeset
   659
4ba554473294 *** empty log message ***
claus
parents: 77
diff changeset
   660
    oldPaint := paint.
4ba554473294 *** empty log message ***
claus
parents: 77
diff changeset
   661
    self paint:viewBackground.
4ba554473294 *** empty log message ***
claus
parents: 77
diff changeset
   662
4ba554473294 *** empty log message ***
claus
parents: 77
diff changeset
   663
    viewBackground isColor ifFalse:[
89
ea2bf46eb669 *** empty log message ***
claus
parents: 85
diff changeset
   664
	gcId notNil ifTrue:[
116
c0db6a8ab4ac *** empty log message ***
claus
parents: 110
diff changeset
   665
	    org := self viewOrigin.
c0db6a8ab4ac *** empty log message ***
claus
parents: 110
diff changeset
   666
	    device setMaskOriginX:org x rounded negated
c0db6a8ab4ac *** empty log message ***
claus
parents: 110
diff changeset
   667
				y:org y rounded negated
89
ea2bf46eb669 *** empty log message ***
claus
parents: 85
diff changeset
   668
			       in:gcId
ea2bf46eb669 *** empty log message ***
claus
parents: 85
diff changeset
   669
	].
81
4ba554473294 *** empty log message ***
claus
parents: 77
diff changeset
   670
    ].
4ba554473294 *** empty log message ***
claus
parents: 77
diff changeset
   671
    self fillRectangleX:x y:y width:w height:h.
4ba554473294 *** empty log message ***
claus
parents: 77
diff changeset
   672
    self paint:oldPaint
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   673
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   674
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   675
redraw
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   676
    "nothing done here"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   677
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   678
    ^ self
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   679
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
   680
48194c26a46c Initial revision
claus
parents:
diff changeset
   681
!PseudoView methodsFor:'enable/disable events'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   682
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   683
compressMotionEvents:aBoolean
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   684
    "enable/disable motion event compression
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   685
     (i.e. replacing all motion events by the last one).
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   686
     Compression makes almost always sense, except when
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   687
     doing things like freehand drawing"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   688
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   689
    |s|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   690
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   691
    (s := self sensor) notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   692
	s compressMotionEvents:aBoolean
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   693
    ]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   694
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   695
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   696
disableButtonEvents
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   697
    "disable all button events"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   698
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   699
    self disableEvent:#buttonpress.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   700
    self disableEvent:#buttonRelease
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   701
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   702
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   703
disableButtonMotionEvents
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   704
    "disable button motion-while-button-is-pressed events"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   705
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   706
    self disableEvent:#buttonMotion
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   707
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   708
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   709
disableButtonPressEvents
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   710
    "disable button press events"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   711
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   712
    self disableEvent:#buttonPress
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   713
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   714
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   715
disableButtonReleaseEvents
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   716
    "disable button release events"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   717
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   718
    self disableEvent:#buttonRelease
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   719
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   720
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   721
disableEnterLeaveEvents
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   722
    "disable both mouse-pointer enter and leave events"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   723
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   724
    self disableEvent:#enter.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   725
    self disableEvent:#leave
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   726
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   727
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   728
disableEvent:anEventSymbol
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   729
    "disable an event -
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   730
     this is a private (internal) method not to be used externally.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   731
     for a list of allowed event symbols see Workstation class"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   732
     
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   733
    eventMask := eventMask bitAnd:(device eventMaskFor:anEventSymbol) bitInvert.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   734
    drawableId notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   735
	device setEventMask:eventMask in:drawableId
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   736
    ]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   737
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   738
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   739
disableMotionEvents
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   740
    "disable motion events"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   741
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   742
    self disableEvent:#pointerMotion
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   743
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   744
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   745
enableButtonEvents
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   746
    "enable both mouse button press and release events.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   747
     These are enabled by default anyway."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   748
    
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   749
    self enableEvent:#buttonPress.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   750
    self enableEvent:#buttonRelease
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   751
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   752
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   753
enableButtonMotionEvents
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   754
    "enable mouse-pointer motion-while-button-is-pressed events.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   755
     These are enabled by default anyway."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   756
    
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   757
    self enableEvent:#buttonMotion
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   758
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   759
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   760
enableButtonPressEvents
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   761
    "enable mouse button press events.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   762
     These are enabled by default anyway."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   763
    
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   764
    self enableEvent:#buttonPress
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   765
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   766
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   767
enableButtonReleaseEvents
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   768
    "enable mouse button release events.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   769
     These are enabled by default anyway."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   770
    
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   771
    self enableEvent:#buttonRelease
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   772
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   773
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   774
enableEnterEvents
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   775
    "enable mouse-pointer enter events"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   776
    
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   777
    self enableEvent:#enter
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   778
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   779
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   780
enableEnterLeaveEvents
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   781
    "enable both mouse-pointer enter and leave events"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   782
    
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   783
    self enableEvent:#enter.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   784
    self enableEvent:#leave
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   785
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   786
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   787
enableEvent:anEventSymbol
48194c26a46c Initial revision
claus
parents:
diff changeset
   788
    "enable an event -
48194c26a46c Initial revision
claus
parents:
diff changeset
   789
     this is a private (internal) method not to be used externally.
2
b35336ab0de3 *** empty log message ***
claus
parents: 0
diff changeset
   790
     for a list of allowed event symbols see Workstation class"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   791
    
48194c26a46c Initial revision
claus
parents:
diff changeset
   792
    eventMask := eventMask bitOr:(device eventMaskFor:anEventSymbol).
2
b35336ab0de3 *** empty log message ***
claus
parents: 0
diff changeset
   793
    drawableId notNil ifTrue:[
72
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   794
	device setEventMask:eventMask in:drawableId
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   795
    ]
48194c26a46c Initial revision
claus
parents:
diff changeset
   796
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   797
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   798
enableFocusEvents
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   799
    "enable keyboard focus change events"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   800
    
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   801
    self enableEvent:#focusChange
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   802
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   803
54
29a6b2f8e042 *** empty log message ***
claus
parents: 46
diff changeset
   804
enableKeyEvents
29a6b2f8e042 *** empty log message ***
claus
parents: 46
diff changeset
   805
    "this is a compatibility leftover - 
29a6b2f8e042 *** empty log message ***
claus
parents: 46
diff changeset
   806
     starting with 2.10.3, keyPress is always enabled to allow 
29a6b2f8e042 *** empty log message ***
claus
parents: 46
diff changeset
   807
     ^C processing."
29a6b2f8e042 *** empty log message ***
claus
parents: 46
diff changeset
   808
29a6b2f8e042 *** empty log message ***
claus
parents: 46
diff changeset
   809
!
29a6b2f8e042 *** empty log message ***
claus
parents: 46
diff changeset
   810
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   811
enableKeyPressEvents
54
29a6b2f8e042 *** empty log message ***
claus
parents: 46
diff changeset
   812
    "this is a compatibility leftover - 
29a6b2f8e042 *** empty log message ***
claus
parents: 46
diff changeset
   813
     starting with 2.10.3, keyPress is always enabled to allow 
29a6b2f8e042 *** empty log message ***
claus
parents: 46
diff changeset
   814
     ^C processing."
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   815
    
48194c26a46c Initial revision
claus
parents:
diff changeset
   816
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   817
48194c26a46c Initial revision
claus
parents:
diff changeset
   818
enableKeyReleaseEvents
48194c26a46c Initial revision
claus
parents:
diff changeset
   819
    "enable key release events"
48194c26a46c Initial revision
claus
parents:
diff changeset
   820
    
48194c26a46c Initial revision
claus
parents:
diff changeset
   821
    self enableEvent:#keyRelease
48194c26a46c Initial revision
claus
parents:
diff changeset
   822
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   823
48194c26a46c Initial revision
claus
parents:
diff changeset
   824
enableLeaveEvents
48194c26a46c Initial revision
claus
parents:
diff changeset
   825
    "enable mouse-pointer leave events"
48194c26a46c Initial revision
claus
parents:
diff changeset
   826
    
48194c26a46c Initial revision
claus
parents:
diff changeset
   827
    self enableEvent:#leave
48194c26a46c Initial revision
claus
parents:
diff changeset
   828
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   829
48194c26a46c Initial revision
claus
parents:
diff changeset
   830
enableMotionEvents
48194c26a46c Initial revision
claus
parents:
diff changeset
   831
    "enable mouse-pointer motion events"
48194c26a46c Initial revision
claus
parents:
diff changeset
   832
    
48194c26a46c Initial revision
claus
parents:
diff changeset
   833
    self enableEvent:#pointerMotion
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   834
! !
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   835
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   836
!PseudoView methodsFor:'event handling'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   837
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   838
buttonMotion:state x:x y:y
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   839
    "mouse was moved while button is pressed - do nothing here"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   840
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   841
    ^ self
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   842
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   843
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   844
buttonMultiPress:button x:x y:y
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   845
    "button was pressed fast after previous press - default to press-again"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   846
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   847
    ^ self buttonPress:button x:x y:y
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   848
!
21
7b3da079729d *** empty log message ***
claus
parents: 12
diff changeset
   849
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   850
buttonPress:button x:x y:y
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   851
    "button was pressed - if its middle button and there is a menu,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   852
     show it."
85
32687feafcc1 *** empty log message ***
claus
parents: 83
diff changeset
   853
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   854
    ((button == 2) or:[button == #menu]) ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   855
	middleButtonMenu notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   856
	    middleButtonMenu showAtPointer
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   857
	]
85
32687feafcc1 *** empty log message ***
claus
parents: 83
diff changeset
   858
    ]
21
7b3da079729d *** empty log message ***
claus
parents: 12
diff changeset
   859
!
7b3da079729d *** empty log message ***
claus
parents: 12
diff changeset
   860
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   861
buttonRelease:button x:x y:y
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   862
    "button was released - do nothing here"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   863
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   864
    ^ self
89
ea2bf46eb669 *** empty log message ***
claus
parents: 85
diff changeset
   865
!
ea2bf46eb669 *** empty log message ***
claus
parents: 85
diff changeset
   866
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   867
buttonShiftPress:button x:x y:y
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   868
    "button was pressed with shift - default to unshift-press action"
89
ea2bf46eb669 *** empty log message ***
claus
parents: 85
diff changeset
   869
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   870
    ^ self buttonPress:button x:x y:y
89
ea2bf46eb669 *** empty log message ***
claus
parents: 85
diff changeset
   871
!
ea2bf46eb669 *** empty log message ***
claus
parents: 85
diff changeset
   872
28
3879ff2138f1 *** empty log message ***
claus
parents: 27
diff changeset
   873
catchExpose
54
29a6b2f8e042 *** empty log message ***
claus
parents: 46
diff changeset
   874
    "this MUST be sent BEFORE doing a bit-blt copy (i.e. copyFrom...), 
29a6b2f8e042 *** empty log message ***
claus
parents: 46
diff changeset
   875
     to tell the sensor that incoming expose events are to be remembered.
29a6b2f8e042 *** empty log message ***
claus
parents: 46
diff changeset
   876
     Sometime after the bit-blt, waitForExpose should be sent, to finally
29a6b2f8e042 *** empty log message ***
claus
parents: 46
diff changeset
   877
     suspend until the expose/noExpose event arrives. 
29a6b2f8e042 *** empty log message ***
claus
parents: 46
diff changeset
   878
     This may be an X speciality and be reimplemented to handle devices
29a6b2f8e042 *** empty log message ***
claus
parents: 46
diff changeset
   879
     which do not need this kind of asynchronous bit-blt confirmation.
29a6b2f8e042 *** empty log message ***
claus
parents: 46
diff changeset
   880
    "
28
3879ff2138f1 *** empty log message ***
claus
parents: 27
diff changeset
   881
3879ff2138f1 *** empty log message ***
claus
parents: 27
diff changeset
   882
    |wg|
3879ff2138f1 *** empty log message ***
claus
parents: 27
diff changeset
   883
54
29a6b2f8e042 *** empty log message ***
claus
parents: 46
diff changeset
   884
    gotExpose := false.
28
3879ff2138f1 *** empty log message ***
claus
parents: 27
diff changeset
   885
    wg := self windowGroup.
3879ff2138f1 *** empty log message ***
claus
parents: 27
diff changeset
   886
    wg notNil ifTrue:[
72
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   887
	"
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   888
	 must process eny pending expose events, since
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   889
	 usually the origin is changed soon so that previous
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   890
	 expose events coordinates are invalid 
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   891
	"
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   892
	wg processExposeEvents.
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
   893
	wg sensor catchExpose
28
3879ff2138f1 *** empty log message ***
claus
parents: 27
diff changeset
   894
    ]
3879ff2138f1 *** empty log message ***
claus
parents: 27
diff changeset
   895
!
3879ff2138f1 *** empty log message ***
claus
parents: 27
diff changeset
   896
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   897
deviceButtonMotion:state x:x y:y
77
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   898
    "this is the low-level (untransformed) event as received
83
597bdb33e832 *** empty log message ***
claus
parents: 81
diff changeset
   899
     from the device (i.e. coordinates are in device coordinates). 
597bdb33e832 *** empty log message ***
claus
parents: 81
diff changeset
   900
     If there is a transformation, apply the inverse
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   901
     and send a buttonMotion with the logical coordinates."
77
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   902
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   903
    |lx ly|
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   904
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   905
    lx := x.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   906
    ly := y.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   907
    transformation notNil ifTrue:[
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   908
	lx := transformation applyInverseToX:lx.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   909
	ly := transformation applyInverseToY:ly.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   910
    ].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   911
    self buttonMotion:state x:lx y:ly
77
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   912
!
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   913
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   914
deviceButtonMultiPress:butt x:x y:y
77
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   915
    "this is the low-level (untransformed) event as received
83
597bdb33e832 *** empty log message ***
claus
parents: 81
diff changeset
   916
     from the device (i.e. coordinates are in device coordinates). 
597bdb33e832 *** empty log message ***
claus
parents: 81
diff changeset
   917
     If there is a transformation, apply the inverse
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   918
     and send a buttonMultiPress with the logical coordinates."
77
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   919
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   920
    |lx ly|
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   921
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   922
    lx := x.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   923
    ly := y.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   924
    transformation notNil ifTrue:[
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   925
	lx := transformation applyInverseToX:lx.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   926
	ly := transformation applyInverseToY:ly.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   927
    ].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   928
    self buttonMultiPress:butt x:lx y:ly
77
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   929
!
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   930
83
597bdb33e832 *** empty log message ***
claus
parents: 81
diff changeset
   931
deviceButtonPress:butt x:x y:y
77
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   932
    "this is the low-level (untransformed) event as received
83
597bdb33e832 *** empty log message ***
claus
parents: 81
diff changeset
   933
     from the device (i.e. coordinates are in device coordinates). 
597bdb33e832 *** empty log message ***
claus
parents: 81
diff changeset
   934
     If there is a transformation, apply the inverse
77
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   935
     and send a buttonPress with the logical coordinates."
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   936
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   937
    |lx ly|
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   938
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   939
    lx := x.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   940
    ly := y.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   941
    transformation notNil ifTrue:[
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   942
	lx := transformation applyInverseToX:lx.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   943
	ly := transformation applyInverseToY:ly.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   944
    ].
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   945
    self buttonPress:butt x:lx y:ly
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   946
!
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   947
83
597bdb33e832 *** empty log message ***
claus
parents: 81
diff changeset
   948
deviceButtonRelease:butt x:x y:y
77
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   949
    "this is the low-level (untransformed) event as received
83
597bdb33e832 *** empty log message ***
claus
parents: 81
diff changeset
   950
     from the device (i.e. coordinates are in device coordinates). 
597bdb33e832 *** empty log message ***
claus
parents: 81
diff changeset
   951
     If there is a transformation, apply the inverse
77
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   952
     and send a buttonRelease with the logical coordinates."
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   953
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   954
    |lx ly|
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   955
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   956
    lx := x.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   957
    ly := y.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   958
    transformation notNil ifTrue:[
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   959
	lx := transformation applyInverseToX:lx.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   960
	ly := transformation applyInverseToY:ly.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   961
    ].
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   962
    self buttonRelease:butt x:lx y:ly
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   963
!
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   964
83
597bdb33e832 *** empty log message ***
claus
parents: 81
diff changeset
   965
deviceButtonShiftPress:butt x:x y:y
77
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   966
    "this is the low-level (untransformed) event as received
83
597bdb33e832 *** empty log message ***
claus
parents: 81
diff changeset
   967
     from the device (i.e. coordinates are in device coordinates). 
597bdb33e832 *** empty log message ***
claus
parents: 81
diff changeset
   968
     If there is a transformation, apply the inverse
77
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   969
     and send a buttonShiftPress with the logical coordinates."
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   970
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   971
    |lx ly|
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   972
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   973
    lx := x.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   974
    ly := y.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   975
    transformation notNil ifTrue:[
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   976
	lx := transformation applyInverseToX:lx.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   977
	ly := transformation applyInverseToY:ly.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   978
    ].
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   979
    self buttonShiftPress:butt x:lx y:ly
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   980
!
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   981
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   982
deviceExposeX:x y:y width:w height:h
77
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
   983
    "this is the low-level (untransformed) event as received
83
597bdb33e832 *** empty log message ***
claus
parents: 81
diff changeset
   984
     from the device (i.e. coordinates are in device coordinates). 
597bdb33e832 *** empty log message ***
claus
parents: 81
diff changeset
   985
     If there is a transformation, apply the inverse
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   986
     and send an expose with the logical coordinates."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   987
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   988
    |lx ly lw lh|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   989
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   990
    lx := x.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   991
    ly := y.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   992
    lw := w.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   993
    lh := h.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   994
    transformation notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   995
	lx := transformation applyInverseToX:lx.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   996
	ly := transformation applyInverseToY:ly.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   997
	lw := transformation applyInverseScaleX:lw.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   998
	lh := transformation applyInverseScaleY:lh.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
   999
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1000
    self exposeX:lx y:ly width:lw height:lh
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1001
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1002
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1003
deviceGraphicExposeX:x y:y width:w height:h
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1004
    "this is the low-level (untransformed) event as received
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1005
     from the device (i.e. coordinates are in device coordinates). 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1006
     If there is a transformation, apply the inverse
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1007
     and send a graphicExpose with the logical coordinates."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1008
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1009
    |lx ly lw lh|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1010
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1011
    lx := x.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1012
    ly := y.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1013
    lw := w.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1014
    lh := h.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1015
    transformation notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1016
	lx := transformation applyInverseToX:lx.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1017
	ly := transformation applyInverseToY:ly.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1018
	lw := transformation applyInverseScaleX:lw.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1019
	lh := transformation applyInverseScaleY:lh.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1020
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1021
    self graphicExposeX:lx y:ly width:lw height:lh
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1022
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1023
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1024
deviceKeyPress:key x:x y:y
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1025
    "this is the low-level (untransformed) event as received
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1026
     from the device (i.e. coordinates are in device coordinates). 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1027
     If there is a transformation, apply the inverse
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1028
     and send a keyPress with the logical coordinates."
77
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1029
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1030
    |lx ly|
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1031
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1032
    lx := x.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1033
    ly := y.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1034
    transformation notNil ifTrue:[
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1035
	lx := transformation applyInverseToX:lx.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1036
	ly := transformation applyInverseToY:ly.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1037
    ].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1038
    self keyPress:key x:lx y:ly
77
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1039
!
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1040
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1041
deviceKeyRelease:key x:x y:y
77
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1042
    "this is the low-level (untransformed) event as received
83
597bdb33e832 *** empty log message ***
claus
parents: 81
diff changeset
  1043
     from the device (i.e. coordinates are in device coordinates). 
597bdb33e832 *** empty log message ***
claus
parents: 81
diff changeset
  1044
     If there is a transformation, apply the inverse
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1045
     and send a keyRelease with the logical coordinates."
77
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1046
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1047
    |lx ly|
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1048
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1049
    lx := x.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1050
    ly := y.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1051
    transformation notNil ifTrue:[
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1052
	lx := transformation applyInverseToX:lx.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1053
	ly := transformation applyInverseToY:ly.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1054
    ].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1055
    self keyRelease:key x:lx y:ly
77
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1056
!
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1057
83
597bdb33e832 *** empty log message ***
claus
parents: 81
diff changeset
  1058
devicePointerEnter:state x:x y:y
77
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1059
    "this is the low-level (untransformed) event as received
83
597bdb33e832 *** empty log message ***
claus
parents: 81
diff changeset
  1060
     from the device (i.e. coordinates are in device coordinates). 
597bdb33e832 *** empty log message ***
claus
parents: 81
diff changeset
  1061
     If there is a transformation, apply the inverse
77
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1062
     and send a pointerEnter with the logical coordinates."
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1063
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1064
    |lx ly|
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1065
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1066
    lx := x.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1067
    ly := y.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1068
    transformation notNil ifTrue:[
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1069
	lx := transformation applyInverseToX:lx.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1070
	ly := transformation applyInverseToY:ly.
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1071
    ].
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1072
    self pointerEnter:state x:lx y:ly
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1073
!
da4678fae5c8 *** empty log message ***
claus
parents: 72
diff changeset
  1074
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1075
exposeX:x y:y width:w height:h
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1076
    "an expose event - nothing done here"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1077
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1078
    ^ self
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1079
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1080
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1081
focusIn
385
15fd1c806d2a pass info if focus change was explicit (i.e. Tab-key) or by window manager.
Claus Gittinger <cg@exept.de>
parents: 373
diff changeset
  1082
    "got keyboard focus - do nothing here"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1083
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1084
    ^ self
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1085
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1086
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1087
focusOut
385
15fd1c806d2a pass info if focus change was explicit (i.e. Tab-key) or by window manager.
Claus Gittinger <cg@exept.de>
parents: 373
diff changeset
  1088
    "lost keyboard focus - do nothing here"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1089
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1090
    ^ self
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1091
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1092
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1093
graphicExposeX:x y:y width:w height:h
54
29a6b2f8e042 *** empty log message ***
claus
parents: 46
diff changeset
  1094
    "an expose event after a scroll - do normal redraw processing"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1095
48194c26a46c Initial revision
claus
parents:
diff changeset
  1096
    self exposeX:x y:y width:w height:h
48194c26a46c Initial revision
claus
parents:
diff changeset
  1097
!
48194c26a46c Initial revision
claus
parents:
diff changeset
  1098
48194c26a46c Initial revision
claus
parents:
diff changeset
  1099
keyPress:key x:x y:y
54
29a6b2f8e042 *** empty log message ***
claus
parents: 46
diff changeset
  1100
    "a key was pressed in this view.
29a6b2f8e042 *** empty log message ***
claus
parents: 46
diff changeset
  1101
     Here only keyCommands are handled - more action has to
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1102
     be implemented by redefining this method"
48194c26a46c Initial revision
claus
parents:
diff changeset
  1103
      
48194c26a46c Initial revision
claus
parents:
diff changeset
  1104
    |action|
48194c26a46c Initial revision
claus
parents:
diff changeset
  1105
48194c26a46c Initial revision
claus
parents:
diff changeset
  1106
    keyCommands notNil ifTrue:[
72
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
  1107
	action := keyCommands at:key ifAbsent:[nil].
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
  1108
	action notNil ifTrue:[
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
  1109
	    action value
3e84121988c3 *** empty log message ***
claus
parents: 59
diff changeset
  1110
	]
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1111
    ]
48194c26a46c Initial revision
claus
parents:
diff changeset
  1112
!
48194c26a46c Initial revision
claus
parents:
diff changeset
  1113
48194c26a46c Initial revision
claus
parents:
diff changeset
  1114
keyRelease:key x:x y:y
48194c26a46c Initial revision
claus
parents:
diff changeset
  1115
    "default action is to do nothing"
48194c26a46c Initial revision
claus
parents:
diff changeset
  1116
    
48194c26a46c Initial revision
claus
parents:
diff changeset
  1117
    ^ self
48194c26a46c Initial revision
claus
parents:
diff changeset
  1118
!
48194c26a46c Initial revision
claus
parents:
diff changeset
  1119
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1120
noExpose
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1121
    "a no expose event after a scroll (event-mode only)"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1122
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1123
    exposePending := false.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1124
    gotExpose := true
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1125
!
48194c26a46c Initial revision
claus
parents:
diff changeset
  1126
48194c26a46c Initial revision
claus
parents:
diff changeset
  1127
pointerEnter:state x:x y:y
48194c26a46c Initial revision
claus
parents:
diff changeset
  1128
    "mouse cursor entered view - do nothing here"
48194c26a46c Initial revision
claus
parents:
diff changeset
  1129
48194c26a46c Initial revision
claus
parents:
diff changeset
  1130
    ^ self
48194c26a46c Initial revision
claus
parents:
diff changeset
  1131
!
48194c26a46c Initial revision
claus
parents:
diff changeset
  1132
48194c26a46c Initial revision
claus
parents:
diff changeset
  1133
pointerLeave:state
48194c26a46c Initial revision
claus
parents:
diff changeset
  1134
    "mouse cursor left view - do nothing here"
48194c26a46c Initial revision
claus
parents:
diff changeset
  1135
48194c26a46c Initial revision
claus
parents:
diff changeset
  1136
    ^ self
31
168c08a3435b *** empty log message ***
claus
parents: 28
diff changeset
  1137
!
168c08a3435b *** empty log message ***
claus
parents: 28
diff changeset
  1138
168c08a3435b *** empty log message ***
claus
parents: 28
diff changeset
  1139
resizeRequest
168c08a3435b *** empty log message ***
claus
parents: 28
diff changeset
  1140
    ^ self
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1141
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1142
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1143
waitForExpose
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1144
    "wait until an expose event arrives (to wait for scroll-finish)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1145
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1146
    |wg|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1147
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1148
    wg := self windowGroup.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1149
    wg notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1150
	"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1151
	 a normal (suspendable) view.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1152
	 wait by doing a real wait
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1153
	"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1154
	 wg waitForExposeFor:self
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1155
    ] ifFalse:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1156
	"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1157
	 a pure event driven view.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1158
	 wait by doing a direct dispatch loop until the event arrives.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1159
	"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1160
	[gotExpose] whileFalse:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1161
	    device dispatchExposeEventFor:drawableId
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1162
	].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1163
    ]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1164
! !
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1165
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1166
!PseudoView methodsFor:'initialize / release'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1167
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1168
destroy
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1169
    "view is about to be destroyed -
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1170
     first destroy menu if there is one and also destroy the GC.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1171
     then the view is physically destroyed."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1172
     
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1173
    middleButtonMenu notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1174
	middleButtonMenu destroy.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1175
	middleButtonMenu := nil
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1176
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1177
    keyCommands := nil.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1178
    gcId notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1179
	device destroyGC:gcId.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1180
	gcId := nil
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1181
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1182
    drawableId notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1183
	device destroyView:self withId:drawableId.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1184
	drawableId := nil
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1185
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1186
    Lobby unregister:self.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1187
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1188
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1189
destroyed
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1190
    "view has been destroyed by someone else"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1191
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1192
    drawableId notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1193
	device removeKnownView:self.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1194
	drawableId := nil.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1195
	realized := false. 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1196
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1197
    self destroy
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1198
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1199
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1200
disposed
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1201
    "view was collected - release system resources"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1202
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1203
    drawableId notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1204
	gcId notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1205
	    device destroyGC:gcId.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1206
	    gcId := nil.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1207
	].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1208
	device destroyView:self withId:drawableId.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1209
	drawableId := nil.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1210
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1211
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1212
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1213
initCursor
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1214
    "default cursor for all views"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1215
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1216
    cursor := Cursor arrow
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1217
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1218
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1219
initStyle
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1220
    "nothing done here"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1221
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1222
    ^ self
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1223
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1224
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1225
initialize
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1226
    "initialize defaults"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1227
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1228
    super initialize.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1229
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1230
    eventMask := Display defaultEventMask.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1231
    viewBackground := background.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1232
    backed := false.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1233
    saveUnder := false.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1234
    exposePending := false.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1235
    self initCursor
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1236
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1237
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1238
reAdjustGeometry
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1239
    "sent late during snapin processing, nothing done here"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1240
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1241
    ^ self
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1242
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1243
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1244
recreate
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1245
    "recreate (i.e. tell X about me) after a snapin"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1246
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1247
    viewBackground isColor ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1248
	viewBackground := viewBackground on:device
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1249
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1250
    super recreate.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1251
    cursor := cursor on:device.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1252
    exposePending := false
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1253
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1254
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1255
reinitStyle
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1256
    "nothing done here"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1257
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1258
    ^ self
0
48194c26a46c Initial revision
claus
parents:
diff changeset
  1259
! !
2
b35336ab0de3 *** empty log message ***
claus
parents: 0
diff changeset
  1260
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1261
!PseudoView methodsFor:'keyboard commands'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1262
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1263
addActionForKey:aKey action:aBlock
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1264
    "define a keyboard command function"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1265
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1266
    keyCommands isNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1267
	keyCommands := IdentityDictionary new
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1268
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1269
    keyCommands at:aKey put:aBlock
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1270
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1271
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1272
removeActionForKey:aKey
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1273
    keyCommands notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1274
	keyCommands removeKey:aKey ifAbsent:[]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1275
    ]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1276
! !
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1277
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1278
!PseudoView methodsFor:'queries'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1279
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1280
buttonMotionEventPending
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1281
    "return true, if a button motion event is pending.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1282
     Normally, you dont want to use this, since no polling is needed
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1283
     (not even for mouse-tracking).
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1284
     Dont use it, since it does not honor the windowGroup, but
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1285
     goes directly to the device instead.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1286
     Actually, its a historical leftover"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1287
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1288
    device flush.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1289
    ^ device eventPending:#buttonMotion for:drawableId
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1290
!
2
b35336ab0de3 *** empty log message ***
claus
parents: 0
diff changeset
  1291
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1292
buttonReleaseEventPending
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1293
    "return true, if a button release event is pending.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1294
     Dont use it, since it does not honor the windowGroup, but
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1295
     goes directly to the device instead.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1296
     Actually, its a historical leftover"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1297
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1298
    device flush.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1299
    ^ device eventPending:#buttonRelease for:drawableId
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1300
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1301
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1302
exposeEventPending
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1303
    "return true, if an expose event is pending."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1304
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1305
    |sensor|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1306
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1307
    ((sensor := self sensor) notNil and:[sensor hasDamageFor:self]) ifTrue:[^ true].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1308
    ^ device eventPending:#expose for:drawableId
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1309
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1310
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1311
isView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1312
    "return true, if the receiver is a view"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1313
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1314
    ^ true
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1315
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1316
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1317
isXtWidget
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1318
    ^ false
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1319
! !
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1320
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1321
!PseudoView methodsFor:'queries-contents'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1322
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1323
heightOfContents
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1324
    "return the height of the contents in pixels.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1325
     Since we dont know here, just return the views size.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1326
     This will make your scrollbars show 100%-visible.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1327
     Must be redefined in subviews to make scrollbars really work."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1328
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1329
    ^ self height
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1330
!
2
b35336ab0de3 *** empty log message ***
claus
parents: 0
diff changeset
  1331
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1332
widthOfContents
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1333
    "return the width of the contents in pixels.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1334
     Since we dont know here, just return the views size.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1335
     This will make your scrollbars show 100%-visible.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1336
     Must be redefined in subviews to make scrollbars really work."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1337
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1338
    ^ self width
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1339
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1340
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1341
xOriginOfContents
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1342
    "return the x-origin of the contents in pixels.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1343
     Since we dont know here, just return 0 for left.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1344
     Must be redefined in subviews to make scrollbars really work."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1345
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1346
    ^ 0
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1347
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1348
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1349
yOriginOfContents
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1350
    "return the y-origin of the contents in pixels.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1351
     Since we dont know here, just return 0 for top.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1352
     Must be redefined in subviews to make scrollbars really work."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1353
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1354
    ^ 0
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1355
! !
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1356
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1357
!PseudoView methodsFor:'selection handling '!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1358
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1359
getSelection
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1360
    "return the object selection - either the local one, or the displays
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1361
     selection buffer."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1362
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1363
    |sel|
2
b35336ab0de3 *** empty log message ***
claus
parents: 0
diff changeset
  1364
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1365
    sel := Smalltalk at:#CopyBuffer.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1366
    sel isNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1367
	sel := device getSelectionFor:drawableId.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1368
	sel isNil ifTrue:[^ nil].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1369
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1370
    ^ sel
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1371
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1372
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1373
getTextSelection
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1374
    "return the text selection - either the local one, or the displays
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1375
     selection buffer."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1376
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1377
    |sel|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1378
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1379
    sel := Smalltalk at:#CopyBuffer.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1380
    sel isNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1381
	sel := device getTextSelectionFor:drawableId.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1382
	sel isNil ifTrue:[^ nil].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1383
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1384
    ^ sel
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1385
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1386
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1387
selectionAsString
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1388
    "our current selection as a string"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1389
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1390
    |o s|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1391
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1392
    o := Smalltalk at:#CopyBuffer.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1393
    s := o.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1394
    o isString ifFalse:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1395
	o isNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1396
	    s := ''
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1397
	] ifFalse:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1398
	    (o isKindOf:StringCollection) ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1399
		s := o asStringWithCRsFrom:1 to:(o size) compressTabs:false withCR:false
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1400
	    ] ifFalse:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1401
		s := o storeString
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1402
	    ]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1403
	]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1404
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1405
    ^ s
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1406
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1407
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1408
selectionClear:selectionID
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1409
    "someone else has the selection"
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
  1410
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
  1411
    "
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1412
     workaround a bug in olvwm: it clears selections
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1413
     on window raise. In this case, keep my last own selection
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1414
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1415
    Smalltalk at:#LastCopyBuffer put:(Smalltalk at:#CopyBuffer).
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1416
    Smalltalk at:#CopyBuffer put:nil.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1417
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1418
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1419
selectionNotify:propertyID target:targetID selection:selectionID from:windowID
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1420
    "this is sent from the display as a reply to a request for a
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1421
     selection. The view should be prepared to paste the received
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1422
     string (it asked for it so that should not be a problem)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1423
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1424
    |s|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1425
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1426
    "workaround a bug in olvwm:
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1427
     it looses selection when bringing a view
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1428
     up front
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
  1429
    "
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1430
    propertyID == 0 ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1431
	"invalid olvwm behavior"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1432
	s := Smalltalk at:#LastCopyBuffer
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1433
    ] ifFalse:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1434
	targetID == (device atomIDOfSTRING) ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1435
	    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1436
	     a returned string
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1437
	    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1438
	    s := device getTextProperty:propertyID from:windowID.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1439
	    s notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1440
		(s endsWith:Character cr) ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1441
		    s := s asStringCollection copyWith:''
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1442
		]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1443
	    ]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1444
	] ifFalse:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1445
	    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1446
	     a returned object
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1447
	    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1448
	    s := device getObjectProperty:propertyID from:windowID.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1449
	].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1450
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1451
    s notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1452
	self paste:s
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1453
    ]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1454
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1455
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1456
selectionRequest:propertyID target:targetID selection:selectionID from:windowID
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1457
    "someone asks for our selection"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1458
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1459
    |o s stream|
40
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
  1460
ec49fbe65816 *** empty log message ***
claus
parents: 35
diff changeset
  1461
    "
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1462
     the code below has been hacked in a hurry -
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1463
     it MUST go into the XWorkstation class,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1464
     since PseudoV should stay independend of any particular
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1465
     implementation (i.e. indep. of the display device)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1466
     Expect this stuff to vanish in the next version ...
117
fff075623c7a *** empty log message ***
claus
parents: 116
diff changeset
  1467
    "
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1468
    targetID == (device atomIDOfLENGTH) ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1469
	"the other one wants to know the size of our selection ..."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1470
	s := self selectionAsString.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1471
	device
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1472
	    setLengthProperty:propertyID 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1473
	    value:s size 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1474
	    for:windowID.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1475
	device
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1476
	    sendSelectionNotifySelection:selectionID
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1477
	    property:propertyID
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1478
	    target:targetID
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1479
	    from:drawableId
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1480
	    to:windowID.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1481
	^ self
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1482
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1483
    (targetID == device atomIDOfSTRING or:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1484
     targetID == (device atomIDOf:'COMPOUND_TEXT')]) ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1485
	s := self selectionAsString.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1486
	device 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1487
	    sendSelection:s 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1488
	    property:propertyID 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1489
	    target:targetID 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1490
	    from:drawableId 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1491
	    to:windowID.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1492
	^ self
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1493
    ].
117
fff075623c7a *** empty log message ***
claus
parents: 116
diff changeset
  1494
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1495
    o := Smalltalk at:#CopyBuffer.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1496
    stream := WriteStream on:(ByteArray new:200).
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1497
    o storeBinaryOn:stream.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1498
    device 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1499
	sendSelection:(stream contents) 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1500
	property:propertyID 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1501
	target:(device atomIDOf:'ST_OBJECT' create:true) 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1502
	from:drawableId 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1503
	to:windowID
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1504
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1505
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1506
setSelection:something
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1507
    "set the object selection - both the local one, and tell the display
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1508
     that we have changed it."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1509
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1510
    Smalltalk at:#LastCopyBuffer put:nil.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1511
    Smalltalk at:#CopyBuffer put:something.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1512
    (device setSelection:something owner:drawableId) ifFalse:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1513
	'PSEUDOVIEW: selection failed' errorPrintNL
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1514
    ]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1515
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1516
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1517
setTextSelection:something
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1518
    "set the text selection - both the local one, and tell the display
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1519
     that we have changed it."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1520
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1521
    |s|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1522
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1523
    Smalltalk at:#LastCopyBuffer put:nil.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1524
    Smalltalk at:#CopyBuffer put:something.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1525
    s := something.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1526
    s isString ifFalse:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1527
	s := s asStringWithCRsFrom:1 to:(s size) compressTabs:false withCR:false
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1528
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1529
    (device setTextSelection:s owner:drawableId) ifFalse:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1530
	'PSEUDOVIEW: selection failed' errorPrintNL
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1531
    ]
2
b35336ab0de3 *** empty log message ***
claus
parents: 0
diff changeset
  1532
! !
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1533
373
79d3a565ca9f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 360
diff changeset
  1534
!PseudoView methodsFor:'user notifications'!
79d3a565ca9f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 360
diff changeset
  1535
79d3a565ca9f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 360
diff changeset
  1536
showActivity:aMessage
79d3a565ca9f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 360
diff changeset
  1537
    "this is sent indirectly by the activityNotification mechanism.
79d3a565ca9f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 360
diff changeset
  1538
     Defined here as a fallback, if ever sent to non topviews."
79d3a565ca9f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 360
diff changeset
  1539
79d3a565ca9f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 360
diff changeset
  1540
    Transcript showCr:aMessage
79d3a565ca9f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 360
diff changeset
  1541
! !
79d3a565ca9f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 360
diff changeset
  1542
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1543
!PseudoView class methodsFor:'documentation'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1544
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1545
version
385
15fd1c806d2a pass info if focus change was explicit (i.e. Tab-key) or by window manager.
Claus Gittinger <cg@exept.de>
parents: 373
diff changeset
  1546
    ^ '$Header: /cvs/stx/stx/libview/Attic/PseudoV.st,v 1.51 1996-01-27 15:34:58 cg Exp $'
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 256
diff changeset
  1547
! !