eXept Software AG Logo

Smalltalk/X Webserver

Documentation of class 'SynchronousWindowSensor':

Home

everywhere
www.exept.de
for:
[back]

Class: SynchronousWindowSensor


Inheritance:

   Object
   |
   +--WindowSensor
      |
      +--SynchronousWindowSensor

Package:
stx:libview
Category:
Interface-Support-UI
Version:
rev: 1.28 date: 2009/06/01 08:43:35
user: cg
file: SynchronousWindowSensor.st directory: libview
module: stx stc-classLibrary: libview
Author:
Claus Gittinger

Description:


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 dont have to understand this.
(consider this system internal code)


Instance protocol:

dummy event flushing
o  compressKeyPressEventsWithKey: aKey

o  flushEventsFor: aViewOrNil inQueue: anEventQueue where: aCondition

event processing
o  addDamage: aRectangle view: aView wakeup: doWakeup
forward as an expose for some view

o  exposeX: x y: y width: w height: h view: aView
forward an expose for some view

o  graphicsExposeX: x y: y width: w height: h final: final view: aView
forward a graphic expose for some view

o  noExposeView: aView
forward a noExpose event for some view

o  saveAndTerminateView: aView
forward a saveAndTerminate event for some view

o  terminateView: aView
forward a terminate event for some view

event processing-private
o  pushDamageEvent: anEvent

o  pushEvent: anEvent

o  pushUserEvent: selector for: anyObject withArguments: argList

initialization
o  initialize
initialize the event queues to empty

specials
o  catchExposeFor: aView
start catching noExpose events (must be done BEFORE a bitblt).

o  waitForExposeFor: aView
wait until a graphicsExpose or a noExpose arrives (after a bitblt).



ST/X 6.1.1; WebServer 1.620 at exept:8081; Wed, 23 May 2012 21:16:49 GMT