[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ] [ Search: ]

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.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]

This document was generated using texi2html 1.76.




No user comments yet!


Add a comment