4.2.1.2 Event Handling
To make the testing somewhat easier we will add a way to terminate the
application by responding to the ESC key. Add the following private
method to our class in `simple.h':
| | bool OnKeyboard (iEvent&);
|
The function OnKeyboard() will be called when an event arrives
Add the following code to `simple.cpp' just before
Simple::OnInitialize():
| | bool Simple::OnKeyboard(iEvent& ev)
{
csKeyEventType eventtype = csKeyEventHelper::GetEventType(&ev);
if (eventtype == csKeyEventTypeDown)
{
utf32_char code = csKeyEventHelper::GetCookedCode(&ev);
if (code == CSKEY_ESC)
{
csRef<iEventQueue> q =
csQueryRegistry<iEventQueue> (GetObjectRegistry());
if (q.IsValid()) q->GetEventOutlet()->Broadcast(csevQuit (
GetObjectRegistry ()));
}
}
return false;
}
|
OnKeyboard() checks if the ESC key has been pressed. If so it
uses the object registry to find the global event queue object. Using
Broadcast() it then broadcasts the `csevQuit' message
to all interested parties. This will cause the application to quit by
terminating the run-loop.
This document was generated using texi2html 1.76.
Add a comment