|
Class: SynchronousWindowSensor
Object
|
+--WindowSensor
|
+--SynchronousWindowSensor
- Package:
- stx:libview
- Category:
- Interface-Support-UI
- Version:
- rev:
1.51
date: 2023/11/24 12:53:12
- user: cg
- file: SynchronousWindowSensor.st directory: libview
- module: stx stc-classLibrary: libview
These sensors are not used with regular views.
In contrast to a regular windowSensor, instances of SynchronousWindowSensor
do NOT put events into a queue and do NOT wakeup any windowGroup process.
Instead, the underlying view is notified synchronously (via a message send)
immediately about the event.
SynchronousWindowSensor are used for only one single situation:
when a super-modal debugger is open
(i.e. one that is debugging the scheduler or event-dispatcher).
This debugger's windowGroup is augmented with a synchronous Sensor, in order
to prevent the event handling code from suspending any process
(you cannot suspend the scheduler; you should not suspend the event dispatcher).
This is pretty tricky and magic - and you don't have to understand this.
(consider this system internal code)
copyrightCOPYRIGHT (c) 1995 by Claus Gittinger
All Rights Reserved
This software is furnished under a license and may be used
only in accordance with the terms of that license and with the
inclusion of the above copyright notice. This software may not
be provided or otherwise made available to, or used by, any
other person. No title to or ownership of the software is
hereby transferred.
dummy event flushing
-
compressKeyPressEventsWithKey: aKey
-
-
flushEventsFor: aViewOrNil inQueue: anEventQueue where: aCondition
-
event processing
-
addDamage: aRectangle view: aView wakeup: doWakeup
-
forward as an expose for some view
-
dispatchEvent: event to: aView
-
because this may be called directly from the event dispatcher,
-
exposeX: x y: y width: w height: h view: aView
-
forward an expose for some view
-
graphicsExposeX: x y: y width: w height: h final: final view: aView
-
forward a graphic expose for some view
-
noExposeView: aView
-
forward a noExpose event for some view
-
saveAndTerminateView: aView
-
forward a saveAndTerminate event for some view
-
terminateView: aView
-
forward a terminate event for some view
event processing-private
-
basicPushEvent: anEvent
-
dispach the event immediately
-
pushDamageEvent: anEvent
-
dispatch the event immediately
-
pushUserEvent: selector for: anyObject withArguments: argList
-
dispatch the event immediately
event simulation
-
enqueueMessage: selector for: someone arguments: argList
-
do it synchronously
initialization
-
initialize
-
(comment from inherited method)
initialize the event queues to empty
specials
-
catchExposeFor: aView
-
start catching noExpose events (must be done BEFORE a bitblt).
-
waitForExposeFor: aView
-
wait until a graphicsExpose or a noExpose arrives (after a bitblt).
|