eXept Software AG Logo

Smalltalk/X Webserver

Documentation of class 'SynchronousWindowSensor':

Home

Documentation
www.exept.de
Everywhere
for:
[back]

Class: SynchronousWindowSensor


Inheritance:

   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

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

copyright

COPYRIGHT (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.

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  dispatchEvent: event to: aView
because this may be called directly from the event dispatcher,

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  basicPushEvent: anEvent
dispach the event immediately

o  pushDamageEvent: anEvent
dispatch the event immediately

o  pushUserEvent: selector for: anyObject withArguments: argList
dispatch the event immediately

event simulation
o  enqueueMessage: selector for: someone arguments: argList
do it synchronously

initialization
o  initialize
(comment from inherited method)
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 7.7.0.0; WebServer 1.702 at 20f6060372b9.unknown:8081; Sat, 21 Dec 2024 17:21:26 GMT