Now Squeak complains that installInterruptWatcher is an unknown selector. 



-------- Original Message --------
Subject: Re: [Newbies] User Interrupt window
Local Time: December 9, 2017 12:48 PM
UTC Time: December 9, 2017 8:48 PM
From: ron@usmedrec.com
To: obrienj <obrienj@protonmail.com>
A friendly place to get answers to even the most basic questions about Squeak. <beginners@lists.squeakfoundation.org>

I see.  You are right.  It's an instance var but there is no accessor for it.  

You will need to add an accessor for it to override the emergency evaluator.  

EventSensor >> interruptSemaphore
    "return the interruptSemaphore. Used for overriding the emergency evaluator on MyClass"
    ^interruptSemaphore

Then it should work.

All the best,

Ron Teitelbaum

On Sat, Dec 9, 2017 at 3:38 PM, obrienj <obrienj@protonmail.com> wrote:
Tried that but Sensor doesn't know interruptSemaphore



-------- Original Message --------
Subject: Re: [Newbies] User Interrupt window
Local Time: December 9, 2017 12:35 PM
UTC Time: December 9, 2017 8:35 PM
A friendly place to get answers to even the most basic questions about Squeak. <beginners@lists.squeakfoundation.org>

You can use Sensor instead.

All the best,

Ron Teitelbaum

On Sat, Dec 9, 2017 at 2:56 PM, obrienj <obrienj@protonmail.com> wrote:
Squeak complains that it doesn't know InputSensor.



-------- Original Message --------
Subject: Re: [Newbies] User Interrupt window
Local Time: December 9, 2017 10:06 AM
UTC Time: December 9, 2017 6:06 PM
To: obrienj <obrienj@protonmail.com>, A friendly place to get answers to even the most basic questions about Squeak. <beginners@lists.squeakfoundation.org>

Hi OBrien J

One way to do this is to install a new interruptWatcher on Sensor.  

On the class you want to handle the message do something like

Sensor installInterruptWatcher:[self userInterruptWatcher].

Yourclass >> userInterruptWatcher
"Wait for user interrupts and open a notifier on the active process when one occurs."
| interruptSemaphore |
interruptSemaphore := InputSensor interruptSemaphore.
[true] whileTrue: [
interruptSemaphore wait.
self signal: #userInterrupt.
].

Then implement your handler with something like onUserInterrupt to respond to the signal.  Or you could just call a method in your class to handle the interrupt.  

Hope that helps!

All the best,

Ron Teitelbaum 


On Sat, Dec 9, 2017 at 12:09 PM, obrienj <obrienj@protonmail.com> wrote:
Is there a way to intercept the 'User Interrupt'  window that pops up when the user types the interrupt key and replace it with a customized dialog window? I've used on: do: to intercept Error messages but can't seem to do the same with EventSensor messages.




_______________________________________________
Beginners mailing list