Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > bad97183153701b09df5fae1052b1c30 > files > 2988

crystalspace-doc-1.2.1-5mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Crystal Space 1.2.1: iEventHandler Struct Reference (Crystal Space 1.2.1 Public API Reference)</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="head">
 <tr height="59">
  <td class="head" width="202" valign="bottom" style="padding-left:0;"><a href="http://www.crystalspace3d.org/"><img src="csblur.png" width="236" height="59" alt="CrystalSpace" border="0"></a></td>
  <td class="head"><h2>Public API Reference</h2></td>
 </tr>
 <tr height="11">
  <td colspan="2" class="headshadow" valign="top" style="padding-left:0;"><img src="csblurb.png" width="236" height="11" alt="" border="0"></td>
 </tr>
</table>
<div class="content">
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="namespaces.html"><span>Namespaces</span></a></li>
    <li class="current"><a href="classes.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul>
</div>
<h1>iEventHandler Struct Reference<br>
<small>
[<a class="el" href="group__event__handling.html">Event handling</a>]</small>
</h1><!-- doxytag: class="iEventHandler" --><!-- doxytag: inherits="iBase" -->This interface describes an entity that can receive events.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="eventh_8h-source.html">iutil/eventh.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for iEventHandler:</div>
<div class="dynsection">
<p><center><img src="structiEventHandler__inherit__graph.png" border="0" usemap="#iEventHandler__inherit__map" alt="Inheritance graph"></center>
<map name="iEventHandler__inherit__map">
<area shape="rect" href="structcsEventQueue_1_1iTypedFrameEventDispatcher.html" title="As a transitional measure, the csevPreProcess, csevProcess, csevPostProcess and csevFinalProcess..." alt="" coords="612,107,924,133"><area shape="rect" href="structiFrameEventSignpost.html" title="iFrameEventSignpost" alt="" coords="688,309,848,336"><area shape="rect" href="classscfImplementation1.html" title="scfImplementation1\&lt; csBaseEventHandler::EventHandlerImpl, iEventHandler \&gt;" alt="" coords="499,411,1037,437"><area shape="rect" href="classscfImplementation1.html" title="scfImplementation1\&lt; FrameBegin3DDraw, iEventHandler \&gt;" alt="" coords="563,461,973,488"><area shape="rect" href="classscfImplementation1.html" title="scfImplementation1\&lt; FramePrinter, iEventHandler \&gt;" alt="" coords="585,512,951,539"><area shape="rect" href="classscfImplementation2.html" title="scfImplementation2\&lt; csInputBinder, iInputBinder, iEventHandler \&gt;" alt="" coords="541,563,995,589"><area shape="rect" href="classscfImplementation2.html" title="scfImplementation2\&lt; csJoystickDriver, iJoystickDriver, iEventHandler \&gt;" alt="" coords="528,613,1008,640"><area shape="rect" href="classscfImplementation2.html" title="scfImplementation2\&lt; csKeyboardDriver, iKeyboardDriver, iEventHandler \&gt;" alt="" coords="513,664,1023,691"><area shape="rect" href="classscfImplementation2.html" title="scfImplementation2\&lt; csMouseDriver, iMouseDriver, iEventHandler \&gt;" alt="" coords="533,715,1003,741"><area shape="rect" href="classscfImplementation7.html" title="scfImplementation7\&lt; csGraphics2D, iGraphics2D, iComponent, iNativeWindow, iNativeWindowManager, iPluginConfig, iDebugHelper, iEventHandler \&gt;" alt="" coords="272,765,1264,792"><area shape="rect" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one..." alt="" coords="5,563,61,589"><area shape="rect" href="classscfImplementation2.html" title="scfImplementation2\&lt; csEventQueue::FinalProcessFrameEventDispatcher, csEventQueue::iTypedFrameEventDispatcher, scfFakeInterface\&lt; iEventHandler \&gt; \&gt;" alt="" coords="1313,5,2359,32"><area shape="rect" href="classscfImplementation2.html" title="scfImplementation2\&lt; csEventQueue::PostProcessFrameEventDispatcher, csEventQueue::iTypedFrameEventDispatcher, scfFakeInterface\&lt; iEventHandler \&gt; \&gt;" alt="" coords="1313,56,2359,83"><area shape="rect" href="classscfImplementation2.html" title="scfImplementation2\&lt; csEventQueue::PreProcessFrameEventDispatcher, csEventQueue::iTypedFrameEventDispatcher, scfFakeInterface\&lt; iEventHandler \&gt; \&gt;" alt="" coords="1316,107,2356,133"><area shape="rect" href="classscfImplementation2.html" title="scfImplementation2\&lt; csEventQueue::ProcessFrameEventDispatcher, csEventQueue::iTypedFrameEventDispatcher, scfFakeInterface\&lt; iEventHandler \&gt; \&gt;" alt="" coords="1328,157,2344,184"><area shape="rect" href="classscfImplementation2.html" title="scfImplementation2\&lt; FrameSignpost_2DConsole, iFrameEventSignpost, scfFakeInterface\&lt; iEventHandler \&gt; \&gt;" alt="" coords="1468,208,2204,235"><area shape="rect" href="classscfImplementation2.html" title="scfImplementation2\&lt; FrameSignpost_3D2D, iFrameEventSignpost, scfFakeInterface\&lt; iEventHandler \&gt; \&gt;" alt="" coords="1484,259,2188,285"><area shape="rect" href="classscfImplementation2.html" title="scfImplementation2\&lt; FrameSignpost_ConsoleDebug, iFrameEventSignpost, scfFakeInterface\&lt; iEventHandler \&gt; \&gt;" alt="" coords="1456,309,2216,336"><area shape="rect" href="classscfImplementation2.html" title="scfImplementation2\&lt; FrameSignpost_DebugFrame, iFrameEventSignpost, scfFakeInterface\&lt; iEventHandler \&gt; \&gt;" alt="" coords="1461,360,2211,387"><area shape="rect" href="classscfImplementation2.html" title="scfImplementation2\&lt; FrameSignpost_Logic3D, iFrameEventSignpost, scfFakeInterface\&lt; iEventHandler \&gt; \&gt;" alt="" coords="1477,411,2195,437"><area shape="rect" href="classFrameSignpost__2DConsole.html" title="FrameSignpost_2DConsole" alt="" coords="2667,208,2861,235"><area shape="rect" href="classFrameSignpost__3D2D.html" title="FrameSignpost_3D2D" alt="" coords="2683,259,2845,285"><area shape="rect" href="classFrameSignpost__ConsoleDebug.html" title="FrameSignpost_ConsoleDebug" alt="" coords="2655,309,2873,336"><area shape="rect" href="classFrameSignpost__DebugFrame.html" title="FrameSignpost_DebugFrame" alt="" coords="2660,360,2868,387"><area shape="rect" href="classFrameSignpost__Logic3D.html" title="FrameSignpost_Logic3D" alt="" coords="2676,411,2852,437"><area shape="rect" href="classFrameBegin3DDraw.html" title="FrameBegin3DDraw handles every csevFrame event in the 3D phase." alt="" coords="1760,461,1912,488"><area shape="rect" href="classFramePrinter.html" title="FramePrinter handles every csevFrame event in the FRAME (final) phase." alt="" coords="1783,512,1889,539"><area shape="rect" href="classcsInputBinder.html" title="Use this class to bind input events (keypress, button press, mouse move, etc." alt="" coords="1781,563,1891,589"><area shape="rect" href="classcsJoystickDriver.html" title="Generic Joystick driver." alt="" coords="1775,613,1897,640"><area shape="rect" href="classcsKeyboardDriver.html" title="Generic Keyboard Driver." alt="" coords="1768,664,1904,691"><area shape="rect" href="classcsMouseDriver.html" title="Generic Mouse Driver." alt="" coords="1777,715,1895,741"><area shape="rect" href="classcsGraphics2D.html" title="This is the base class for 2D canvases." alt="" coords="1781,765,1891,792"><area shape="rect" href="classscfImplementationExt2.html" title="scfImplementationExt2\&lt; csGraphics2DGLCommon, csGraphics2D, iEventPlug, iOpenGLDriverDatabase \&gt;" alt="" coords="2409,765,3119,792"><area shape="rect" href="classcsGraphics2DGLCommon.html" title="Basic OpenGL version of the 2D driver class." alt="" coords="3168,765,3357,792"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>

<p>
<a href="structiEventHandler-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="group__event__handling.html#gd62f963e20f1180634a9557b392d987d">csHandlerID</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiEventHandler.html#5770ffedf51bb5b1d203ac2b1c1b9e40">GenericID</a> (<a class="el" href="classcsRef.html">csRef</a>&lt; <a class="el" href="structiEventHandlerRegistry.html">iEventHandlerRegistry</a> &gt; &amp;) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This function returns a csHandlerID corresponding with GenericName, i.e., it should always return csHandlerRegistry::GetGenericID (this-&gt;<a class="el" href="structiEventHandler.html#7880f6a777bc255ec58c42e4292e5071" title="This function returns a string which &quot;names&quot; this event handler generically...">GenericName()</a>).  <a href="#5770ffedf51bb5b1d203ac2b1c1b9e40"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiEventHandler.html#7880f6a777bc255ec58c42e4292e5071">GenericName</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This function returns a string which "names" this event handler generically (i.e., it identifies all instances of this event handler as a group).  <a href="#7880f6a777bc255ec58c42e4292e5071"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <br>
<a class="el" href="group__event__handling.html#gd62f963e20f1180634a9557b392d987d">csHandlerID</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiEventHandler.html#553f18803da012da45ce762ef029ee21">GenericPrec</a> (<a class="el" href="classcsRef.html">csRef</a>&lt; <a class="el" href="structiEventHandlerRegistry.html">iEventHandlerRegistry</a> &gt; &amp;, <a class="el" href="classcsRef.html">csRef</a>&lt; <a class="el" href="structiEventNameRegistry.html">iEventNameRegistry</a> &gt; &amp;, <a class="el" href="group__event__handling.html#g51e1762faeeefdadf693499fc93db757">csEventID</a>) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This function takes a csEventID as an argument and returns an array of csHandlerIDs identifying those event handlers which must, for the given event, only be called before this one (if they have been instantiated).  <a href="#553f18803da012da45ce762ef029ee21"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <br>
<a class="el" href="group__event__handling.html#gd62f963e20f1180634a9557b392d987d">csHandlerID</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiEventHandler.html#c0e742aaaf86a619966bd30c0751e94d">GenericSucc</a> (<a class="el" href="classcsRef.html">csRef</a>&lt; <a class="el" href="structiEventHandlerRegistry.html">iEventHandlerRegistry</a> &gt; &amp;, <a class="el" href="classcsRef.html">csRef</a>&lt; <a class="el" href="structiEventNameRegistry.html">iEventNameRegistry</a> &gt; &amp;, <a class="el" href="group__event__handling.html#g51e1762faeeefdadf693499fc93db757">csEventID</a>) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This function takes a csEventID as an argument and returns an array of csHandlerIDs identifying those event handlers which must, for the given event, only be called after this one (if the have been instantiated).  <a href="#c0e742aaaf86a619966bd30c0751e94d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiEventHandler.html#4b3885c2c5dc59fc4ecf32c089f0973a">HandleEvent</a> (<a class="el" href="structiEvent.html">iEvent</a> &amp;)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is the basic event handling function.  <a href="#4b3885c2c5dc59fc4ecf32c089f0973a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <br>
<a class="el" href="group__event__handling.html#gd62f963e20f1180634a9557b392d987d">csHandlerID</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiEventHandler.html#7e05b4d4abf9c9d90f6cd665fabd4f2c">InstancePrec</a> (<a class="el" href="classcsRef.html">csRef</a>&lt; <a class="el" href="structiEventHandlerRegistry.html">iEventHandlerRegistry</a> &gt; &amp;, <a class="el" href="classcsRef.html">csRef</a>&lt; <a class="el" href="structiEventNameRegistry.html">iEventNameRegistry</a> &gt; &amp;, <a class="el" href="group__event__handling.html#g51e1762faeeefdadf693499fc93db757">csEventID</a>) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This function takes a csEventID as an argument and returns an array of csHandlerIDs identifying those event handlers which must, for the given event, only be called before this one.  <a href="#7e05b4d4abf9c9d90f6cd665fabd4f2c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <br>
<a class="el" href="group__event__handling.html#gd62f963e20f1180634a9557b392d987d">csHandlerID</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiEventHandler.html#9df347d0041fcc47255ae27089da245b">InstanceSucc</a> (<a class="el" href="classcsRef.html">csRef</a>&lt; <a class="el" href="structiEventHandlerRegistry.html">iEventHandlerRegistry</a> &gt; &amp;, <a class="el" href="classcsRef.html">csRef</a>&lt; <a class="el" href="structiEventNameRegistry.html">iEventNameRegistry</a> &gt; &amp;, <a class="el" href="group__event__handling.html#g51e1762faeeefdadf693499fc93db757">csEventID</a>) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This function takes a csEventID as an argument and returns an array of csHandlerIDs identifying those event handlers which must, for the given event, only be called after this one.  <a href="#9df347d0041fcc47255ae27089da245b"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
This interface describes an entity that can receive events. 
<p>Definition at line <a class="el" href="eventh_8h-source.html#l00039">39</a> of file <a class="el" href="eventh_8h-source.html">eventh.h</a>.</p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="5770ffedf51bb5b1d203ac2b1c1b9e40"></a><!-- doxytag: member="iEventHandler::GenericID" ref="5770ffedf51bb5b1d203ac2b1c1b9e40" args="(csRef&lt; iEventHandlerRegistry &gt; &amp;) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="group__event__handling.html#gd62f963e20f1180634a9557b392d987d">csHandlerID</a> iEventHandler::GenericID           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classcsRef.html">csRef</a>&lt; <a class="el" href="structiEventHandlerRegistry.html">iEventHandlerRegistry</a> &gt; &amp;&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This function returns a csHandlerID corresponding with GenericName, i.e., it should always return csHandlerRegistry::GetGenericID (this-&gt;<a class="el" href="structiEventHandler.html#7880f6a777bc255ec58c42e4292e5071" title="This function returns a string which &quot;names&quot; this event handler generically...">GenericName()</a>). 
<p>
Normally, it will actually wrap a static method StaticID() which can be used to reference a class of event handlers abstractly without it having been instantiated. Usually, you will want to use the CS_EVENTHANDLER_NAMES macro instead of defining this yourself. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="structiEventHandler.html#7880f6a777bc255ec58c42e4292e5071" title="This function returns a string which &quot;names&quot; this event handler generically...">iEventHandler::GenericName</a> <p>
<a class="el" href="group__event__handling.html#g4f7b2a21cfb5997a2bb258920fafc61f" title="Macro to create default GenericName and GenericName methods.">CS_EVENTHANDLER_NAMES</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="7880f6a777bc255ec58c42e4292e5071"></a><!-- doxytag: member="iEventHandler::GenericName" ref="7880f6a777bc255ec58c42e4292e5071" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const char* iEventHandler::GenericName           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This function returns a string which "names" this event handler generically (i.e., it identifies all instances of this event handler as a group). 
<p>
For example, the core application logic would be "application", a window system plugin would be "crystalspace.windowsystem", etc. This is used, in combination with the GenericPrec, GenericSucc, InstancePrec, and InstanceSucc functions, by the subscription scheduler to establish the order in which event handlers are to be called.<p>
Too bad C++ doesn't allow virtual static functions, because this would be one. To make up for this, it is conventional to also define a static method StaticHandlerName() which can be used to reference a class of event handlers abstractly without it having been instantiated, e.g., csBaseEventHandler::StaticHandlerName().<p>
The <a class="el" href="classcsEventHandlerRegistry.html" title="The csEventHandlerRegistry maintains a global one-to-one mapping from strings to...">csEventHandlerRegistry</a> also uses this method to construct a unique instance name for each <a class="el" href="structiEventHandler.html" title="This interface describes an entity that can receive events.">iEventHandler</a>.<p>
Usually, you will want to use the CS_EVENTHANDLER_NAMES macro instead of defining this yourself. <dl class="see" compact><dt><b>See also:</b></dt><dd>csHandlerRegistry::GetID <p>
csHandlerRegistry::ReleaseID <p>
<a class="el" href="group__event__handling.html#g4f7b2a21cfb5997a2bb258920fafc61f" title="Macro to create default GenericName and GenericName methods.">CS_EVENTHANDLER_NAMES</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="553f18803da012da45ce762ef029ee21"></a><!-- doxytag: member="iEventHandler::GenericPrec" ref="553f18803da012da45ce762ef029ee21" args="(csRef&lt; iEventHandlerRegistry &gt; &amp;, csRef&lt; iEventNameRegistry &gt; &amp;, csEventID) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="group__event__handling.html#gd62f963e20f1180634a9557b392d987d">csHandlerID</a>* iEventHandler::GenericPrec           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classcsRef.html">csRef</a>&lt; <a class="el" href="structiEventHandlerRegistry.html">iEventHandlerRegistry</a> &gt; &amp;&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classcsRef.html">csRef</a>&lt; <a class="el" href="structiEventNameRegistry.html">iEventNameRegistry</a> &gt; &amp;&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__event__handling.html#g51e1762faeeefdadf693499fc93db757">csEventID</a>&nbsp;</td>
          <td class="paramname"></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This function takes a csEventID as an argument and returns an array of csHandlerIDs identifying those event handlers which must, for the given event, only be called before this one (if they have been instantiated). 
<p>
Should only return generic identifiers, not instance identifiers; in other words, every member of the array should be the result of a call to csHandlerRegistry::GetGenericID("name"), where "name" may be some class's static <a class="el" href="structiEventHandler.html#7880f6a777bc255ec58c42e4292e5071" title="This function returns a string which &quot;names&quot; this event handler generically...">GenericName()</a> function or a literal string.<p>
This should also be a "virtual static" function, but C++ doesn't have them. 
<p>Implemented in <a class="el" href="classFrameSignpost__Logic3D.html#90091ebc74fa707f839fa63b4f3a336b">FrameSignpost_Logic3D</a>, <a class="el" href="classFrameSignpost__3D2D.html#8a22956ef5032d5fb990c0e61006b071">FrameSignpost_3D2D</a>, <a class="el" href="classFrameSignpost__2DConsole.html#fe718dca5a3e80cac0e0cf111270428b">FrameSignpost_2DConsole</a>, <a class="el" href="classFrameSignpost__ConsoleDebug.html#37e653560992517d3fa2148b5a0b5f62">FrameSignpost_ConsoleDebug</a>, and <a class="el" href="classFrameSignpost__DebugFrame.html#2643502a7fb975f8b3bc41fba8d538ee">FrameSignpost_DebugFrame</a>.</p>

</div>
</div><p>
<a class="anchor" name="c0e742aaaf86a619966bd30c0751e94d"></a><!-- doxytag: member="iEventHandler::GenericSucc" ref="c0e742aaaf86a619966bd30c0751e94d" args="(csRef&lt; iEventHandlerRegistry &gt; &amp;, csRef&lt; iEventNameRegistry &gt; &amp;, csEventID) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="group__event__handling.html#gd62f963e20f1180634a9557b392d987d">csHandlerID</a>* iEventHandler::GenericSucc           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classcsRef.html">csRef</a>&lt; <a class="el" href="structiEventHandlerRegistry.html">iEventHandlerRegistry</a> &gt; &amp;&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classcsRef.html">csRef</a>&lt; <a class="el" href="structiEventNameRegistry.html">iEventNameRegistry</a> &gt; &amp;&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__event__handling.html#g51e1762faeeefdadf693499fc93db757">csEventID</a>&nbsp;</td>
          <td class="paramname"></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This function takes a csEventID as an argument and returns an array of csHandlerIDs identifying those event handlers which must, for the given event, only be called after this one (if the have been instantiated). 
<p>
Should only return generic identifiers, not instance identifiers; in other words, every member of the array should be the result of a call to csHandlerRegistry::GetGenericID("name"), where "name" may be some class's static GenericString() function or a literal string.<p>
This should also be a "virtual static" function, but C++ doesn't have them. 
<p>Implemented in <a class="el" href="classFrameSignpost__Logic3D.html#53627e3486675626f766612aa0bab6fb">FrameSignpost_Logic3D</a>, <a class="el" href="classFrameSignpost__3D2D.html#f380cf7beefa1220dce8bc467dcfbdd9">FrameSignpost_3D2D</a>, <a class="el" href="classFrameSignpost__2DConsole.html#2c597389689fab7aa501afb9115e6470">FrameSignpost_2DConsole</a>, <a class="el" href="classFrameSignpost__ConsoleDebug.html#4aab22de5446c98dd0f26ce0cab9fe15">FrameSignpost_ConsoleDebug</a>, and <a class="el" href="classFrameSignpost__DebugFrame.html#0a24e61c926fa6e3ee5d7edd460aaa36">FrameSignpost_DebugFrame</a>.</p>

</div>
</div><p>
<a class="anchor" name="4b3885c2c5dc59fc4ecf32c089f0973a"></a><!-- doxytag: member="iEventHandler::HandleEvent" ref="4b3885c2c5dc59fc4ecf32c089f0973a" args="(iEvent &amp;)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool iEventHandler::HandleEvent           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structiEvent.html">iEvent</a> &amp;&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This is the basic event handling function. 
<p>
To receive events, a component must implement <a class="el" href="structiEventHandler.html" title="This interface describes an entity that can receive events.">iEventHandler</a> and register with an event queue using <a class="el" href="structiEventQueue.html#60116ec12210ce66f7aa65f9c5677321" title="Register a listener with the event scheduling subsystem.">iEventQueue::RegisterListener()</a> and <a class="el" href="structiEventQueue.html#d3e206126333538024bdd9587a7bd221" title="Subscribe an event listener to a given event subtree.">iEventQueue::Subscribe()</a>. The event handler should return true if the event was handled. Returning true prevents the event from being passed along to other event handlers (unless the event's Broadcast flag has been set, in which case it is sent to all subscribers regardless of the return value). If the event was not handled, then false should be returned, in which case other event handlers are given a shot at the event. Do <b>not</b> return true unless you really handled the event and want event dispatch to stop at your handler. 
<p>Implemented in <a class="el" href="classcsGraphics2D.html#f34849ba08f71796a72e77f36a6732b2">csGraphics2D</a>, <a class="el" href="classcsInputBinder.html#b92889788b062c6ea8f3f14d7aebe6f3">csInputBinder</a>, <a class="el" href="classFrameBegin3DDraw.html#e5f8becceec3962f5ea8bc98dec1e3af">FrameBegin3DDraw</a>, <a class="el" href="classFramePrinter.html#364dc046123282715a47f816256cff12">FramePrinter</a>, <a class="el" href="structcsEventQueue_1_1iTypedFrameEventDispatcher.html#437d9e499da5d56cae005fe99a24ed47">csEventQueue::iTypedFrameEventDispatcher</a>, <a class="el" href="classcsKeyboardDriver.html#ee331e78494c982e174fa8a4516e7426">csKeyboardDriver</a>, <a class="el" href="classcsJoystickDriver.html#87783151aa0993c04ac1a4ffbf108564">csJoystickDriver</a>, and <a class="el" href="structiFrameEventSignpost.html#d6e9e55d4646b681118ce1a35fa2cb8e">iFrameEventSignpost</a>.</p>

</div>
</div><p>
<a class="anchor" name="7e05b4d4abf9c9d90f6cd665fabd4f2c"></a><!-- doxytag: member="iEventHandler::InstancePrec" ref="7e05b4d4abf9c9d90f6cd665fabd4f2c" args="(csRef&lt; iEventHandlerRegistry &gt; &amp;, csRef&lt; iEventNameRegistry &gt; &amp;, csEventID) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="group__event__handling.html#gd62f963e20f1180634a9557b392d987d">csHandlerID</a>* iEventHandler::InstancePrec           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classcsRef.html">csRef</a>&lt; <a class="el" href="structiEventHandlerRegistry.html">iEventHandlerRegistry</a> &gt; &amp;&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classcsRef.html">csRef</a>&lt; <a class="el" href="structiEventNameRegistry.html">iEventNameRegistry</a> &gt; &amp;&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__event__handling.html#g51e1762faeeefdadf693499fc93db757">csEventID</a>&nbsp;</td>
          <td class="paramname"></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This function takes a csEventID as an argument and returns an array of csHandlerIDs identifying those event handlers which must, for the given event, only be called before this one. 
<p>
May include both generic and instance identifiers, i.e., the results of both csHandlerRegistry::GetGenericID() and csHandlerRegistry::GetID() calls.<p>
If the instance constraints are the same as the generic ones, use ths CS_EVENTHANDLER_DEFAULT_INSTANCE_CONSTRAINTS macro instead of defining this for yourself. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__event__handling.html#g3b8588d425823594019243398b3d4447" title="Macro to declare instance constraints which are the same as the generics.">CS_EVENTHANDLER_DEFAULT_INSTANCE_CONSTRAINTS</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="9df347d0041fcc47255ae27089da245b"></a><!-- doxytag: member="iEventHandler::InstanceSucc" ref="9df347d0041fcc47255ae27089da245b" args="(csRef&lt; iEventHandlerRegistry &gt; &amp;, csRef&lt; iEventNameRegistry &gt; &amp;, csEventID) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="group__event__handling.html#gd62f963e20f1180634a9557b392d987d">csHandlerID</a>* iEventHandler::InstanceSucc           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classcsRef.html">csRef</a>&lt; <a class="el" href="structiEventHandlerRegistry.html">iEventHandlerRegistry</a> &gt; &amp;&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classcsRef.html">csRef</a>&lt; <a class="el" href="structiEventNameRegistry.html">iEventNameRegistry</a> &gt; &amp;&nbsp;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__event__handling.html#g51e1762faeeefdadf693499fc93db757">csEventID</a>&nbsp;</td>
          <td class="paramname"></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This function takes a csEventID as an argument and returns an array of csHandlerIDs identifying those event handlers which must, for the given event, only be called after this one. 
<p>
May include both generic and instance identifiers, i.e., the results of both csHandlerRegistry::GetGenericID() and csHandlerRegistry::GetID() calls. <p>
If the instance constraints are the same as the generic ones, use ths CS_EVENTHANDLER_DEFAULT_INSTANCE_CONSTRAINTS macro instead of defining this for yourself. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__event__handling.html#g3b8588d425823594019243398b3d4447" title="Macro to declare instance constraints which are the same as the generics.">CS_EVENTHANDLER_DEFAULT_INSTANCE_CONSTRAINTS</a> </dd></dl>

</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li>iutil/<a class="el" href="eventh_8h-source.html">eventh.h</a></ul>
<hr size="1"><address><small>Generated for Crystal Space 1.2.1 by 
<a href="http://www.doxygen.org/index.html">doxygen</a> 1.5.3 
</small></address> </div></body> </html>