<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>scim: scim::HotkeyMatcher Class Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.5.0 --> <div class="tabs"> <ul> <li><a href="main.html"><span>Main 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 id="current"><a href="classes.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul></div> <div class="tabs"> <ul> <li><a href="classes.html"><span>Alphabetical List</span></a></li> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul></div> <div class="nav"> <a class="el" href="a00157.html">scim</a>::<a class="el" href="a00047.html">HotkeyMatcher</a></div> <h1>scim::HotkeyMatcher Class Reference<br> <small> [<a class="el" href="a00158.html">Accessories</a>]</small> </h1><!-- doxytag: class="scim::HotkeyMatcher" -->This class is used to match a <a class="el" href="a00054.html">KeyEvent</a> among a set of hotkeys. <a href="#_details">More...</a> <p> <code>#include <scim_hotkey.h></code> <p> <a href="a00365.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"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html#1f5dcfffda5368bd4ae4274e316e96d7">HotkeyMatcher</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#1f5dcfffda5368bd4ae4274e316e96d7"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html#97a939101d6c51a22f32798e9f5ee830">~HotkeyMatcher</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <a href="#97a939101d6c51a22f32798e9f5ee830"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html#91271f850315972a13e0db3799c1a013">add_hotkey</a> (const <a class="el" href="a00054.html">KeyEvent</a> &key, int id)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add a Hotkey into this <a class="el" href="a00047.html">HotkeyMatcher</a>. <a href="#91271f850315972a13e0db3799c1a013"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html#dbc956decc6a8b47a210e15bb0e3ec47">add_hotkeys</a> (const <a class="el" href="a00158.html#gfe3e8c1f1276da4a6331fa96fb1b2398">KeyEventList</a> &keys, int id)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add a set of Hotkeys into this <a class="el" href="a00047.html">HotkeyMatcher</a>. <a href="#dbc956decc6a8b47a210e15bb0e3ec47"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html#a30516ed1aa20b7814dd90ef9716c38e">find_hotkeys</a> (int id, <a class="el" href="a00158.html#gfe3e8c1f1276da4a6331fa96fb1b2398">KeyEventList</a> &keys) const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Find all Hotkeys binded to a specific id. <a href="#a30516ed1aa20b7814dd90ef9716c38e"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html#94f33cf978c66166828dc2bb5db6a5a4">get_all_hotkeys</a> (<a class="el" href="a00158.html#gfe3e8c1f1276da4a6331fa96fb1b2398">KeyEventList</a> &keys, std::vector< int > &ids) const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get all Hotkeys added into this <a class="el" href="a00047.html">HotkeyMatcher</a>. <a href="#94f33cf978c66166828dc2bb5db6a5a4"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html#0e37c2403af39f0168f9a328f5d6977d">reset</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Reset the <a class="el" href="a00047.html">HotkeyMatcher</a>. <a href="#0e37c2403af39f0168f9a328f5d6977d"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html#9bcb276e9c4a94173878e38cceb4369d">clear</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Clear all Hotkeys. <a href="#9bcb276e9c4a94173878e38cceb4369d"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html#978b78101e8b3590c42a0d33bcd4a5ec">push_key_event</a> (const <a class="el" href="a00054.html">KeyEvent</a> &key)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Push a <a class="el" href="a00054.html">KeyEvent</a> into the queue. <a href="#978b78101e8b3590c42a0d33bcd4a5ec"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html#e593cf5c0fa16cd8b1296b9c1f4e7ff0">is_matched</a> (void) const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Check if the last <a class="el" href="a00054.html">KeyEvent</a> pushed by push_key_event () matched with any Hotkey. <a href="#e593cf5c0fa16cd8b1296b9c1f4e7ff0"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html#90cc351840bce9439af73702d2061628">get_match_result</a> (void) const</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the match result. <a href="#90cc351840bce9439af73702d2061628"></a><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> This class is used to match a <a class="el" href="a00054.html">KeyEvent</a> among a set of hotkeys. <p> This class keeps the key event history so that it can match any kind of key events, including key release events, correctly.<p> If there are large amount of hotkeys to be matched, this class can provide very good performance. <p> <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="1f5dcfffda5368bd4ae4274e316e96d7"></a><!-- doxytag: member="scim::HotkeyMatcher::HotkeyMatcher" ref="1f5dcfffda5368bd4ae4274e316e96d7" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">scim::HotkeyMatcher::HotkeyMatcher </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Constructor. <p> </div> </div><p> <a class="anchor" name="97a939101d6c51a22f32798e9f5ee830"></a><!-- doxytag: member="scim::HotkeyMatcher::~HotkeyMatcher" ref="97a939101d6c51a22f32798e9f5ee830" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">scim::HotkeyMatcher::~HotkeyMatcher </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Destructor. <p> </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="91271f850315972a13e0db3799c1a013"></a><!-- doxytag: member="scim::HotkeyMatcher::add_hotkey" ref="91271f850315972a13e0db3799c1a013" args="(const KeyEvent &key, int id)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void scim::HotkeyMatcher::add_hotkey </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00054.html">KeyEvent</a> & </td> <td class="paramname"> <em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>id</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Add a Hotkey into this <a class="el" href="a00047.html">HotkeyMatcher</a>. <p> If a same Hotkey was already added, then it'll be replaced by this new one.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>A Hotkey to be added. </td></tr> <tr><td valign="top"></td><td valign="top"><em>id</em> </td><td>An id to be binded to this Hotkey. </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="dbc956decc6a8b47a210e15bb0e3ec47"></a><!-- doxytag: member="scim::HotkeyMatcher::add_hotkeys" ref="dbc956decc6a8b47a210e15bb0e3ec47" args="(const KeyEventList &keys, int id)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void scim::HotkeyMatcher::add_hotkeys </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00158.html#gfe3e8c1f1276da4a6331fa96fb1b2398">KeyEventList</a> & </td> <td class="paramname"> <em>keys</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>id</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Add a set of Hotkeys into this <a class="el" href="a00047.html">HotkeyMatcher</a>. <p> If a same Hotkey in the list was already added, then it'll be replaced by the new one.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>keys</em> </td><td>A set of Hotkeys to be added. </td></tr> <tr><td valign="top"></td><td valign="top"><em>id</em> </td><td>An id to be binded to these Hotkeys. </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="a30516ed1aa20b7814dd90ef9716c38e"></a><!-- doxytag: member="scim::HotkeyMatcher::find_hotkeys" ref="a30516ed1aa20b7814dd90ef9716c38e" args="(int id, KeyEventList &keys) const" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">size_t scim::HotkeyMatcher::find_hotkeys </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>id</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a00158.html#gfe3e8c1f1276da4a6331fa96fb1b2398">KeyEventList</a> & </td> <td class="paramname"> <em>keys</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"> const</td> </tr> </table> </div> <div class="memdoc"> <p> Find all Hotkeys binded to a specific id. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>id</em> </td><td>The id to be found. </td></tr> <tr><td valign="top"></td><td valign="top"><em>keys</em> </td><td>A KeyEventList object to hold all KeyEvents binded to the id. </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>The number of Hotkeys found. </dd></dl> </div> </div><p> <a class="anchor" name="94f33cf978c66166828dc2bb5db6a5a4"></a><!-- doxytag: member="scim::HotkeyMatcher::get_all_hotkeys" ref="94f33cf978c66166828dc2bb5db6a5a4" args="(KeyEventList &keys, std::vector< int > &ids) const" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">size_t scim::HotkeyMatcher::get_all_hotkeys </td> <td>(</td> <td class="paramtype"><a class="el" href="a00158.html#gfe3e8c1f1276da4a6331fa96fb1b2398">KeyEventList</a> & </td> <td class="paramname"> <em>keys</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">std::vector< int > & </td> <td class="paramname"> <em>ids</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"> const</td> </tr> </table> </div> <div class="memdoc"> <p> Get all Hotkeys added into this <a class="el" href="a00047.html">HotkeyMatcher</a>. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>keys</em> </td><td>A KeyEventList object to hold all KeyEvents. </td></tr> <tr><td valign="top"></td><td valign="top"><em>ids</em> </td><td>A int list to hold all corresponding IDs.</td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>The number of available Hotkeys. </dd></dl> </div> </div><p> <a class="anchor" name="0e37c2403af39f0168f9a328f5d6977d"></a><!-- doxytag: member="scim::HotkeyMatcher::reset" ref="0e37c2403af39f0168f9a328f5d6977d" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void scim::HotkeyMatcher::reset </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Reset the <a class="el" href="a00047.html">HotkeyMatcher</a>. <p> The <a class="el" href="a00054.html">KeyEvent</a> queue will be cleared, all state will be reset. The Hotkeys which were already added will not be touched. </div> </div><p> <a class="anchor" name="9bcb276e9c4a94173878e38cceb4369d"></a><!-- doxytag: member="scim::HotkeyMatcher::clear" ref="9bcb276e9c4a94173878e38cceb4369d" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void scim::HotkeyMatcher::clear </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Clear all Hotkeys. <p> </div> </div><p> <a class="anchor" name="978b78101e8b3590c42a0d33bcd4a5ec"></a><!-- doxytag: member="scim::HotkeyMatcher::push_key_event" ref="978b78101e8b3590c42a0d33bcd4a5ec" args="(const KeyEvent &key)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void scim::HotkeyMatcher::push_key_event </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00054.html">KeyEvent</a> & </td> <td class="paramname"> <em>key</em> </td> <td> ) </td> <td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Push a <a class="el" href="a00054.html">KeyEvent</a> into the queue. <p> This <a class="el" href="a00054.html">KeyEvent</a> will be matched against the available Hotkeys immediately.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>The key to be pushed into. </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="e593cf5c0fa16cd8b1296b9c1f4e7ff0"></a><!-- doxytag: member="scim::HotkeyMatcher::is_matched" ref="e593cf5c0fa16cd8b1296b9c1f4e7ff0" args="(void) const" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool scim::HotkeyMatcher::is_matched </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const</td> </tr> </table> </div> <div class="memdoc"> <p> Check if the last <a class="el" href="a00054.html">KeyEvent</a> pushed by push_key_event () matched with any Hotkey. <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>true If the <a class="el" href="a00054.html">KeyEvent</a> matched with a Hotkey. </dd></dl> </div> </div><p> <a class="anchor" name="90cc351840bce9439af73702d2061628"></a><!-- doxytag: member="scim::HotkeyMatcher::get_match_result" ref="90cc351840bce9439af73702d2061628" args="(void) const" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int scim::HotkeyMatcher::get_match_result </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> const</td> </tr> </table> </div> <div class="memdoc"> <p> Get the match result. <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd>The corresponding id of the matched Hotkey. If no Hotkey was matched, return -1. </dd></dl> </div> </div><p> <hr>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="a00134.html">scim_hotkey.h</a></ul> <hr size="1"><address style="align: right;"><small>Generated on Thu Jun 28 14:12:39 2007 for scim by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.0 </small></address> </body> </html>