tobkit/libsigc++-2.2.3/docs/reference/html/classsigc_1_1signal.html
2009-12-29 11:14:14 +00:00

119 lines
10 KiB
HTML

<!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>libsigc++ 2.0: sigc::signal&lt; T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7 &gt; Class Template Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head>
<body bgcolor="#ffffff">
<table border="0" width="100%">
<tr>
<td width="10%" height="40"><img src="../../images/libsigc_logo.gif" alt="logo" border="0" width="100%" height="100%"/></td>
<td width="90%" height="40"><img src="../../images/top.gif" alt="top" width="100%" height="40"/></td>
</tr>
</table>
<center>
<a class="qindex" href="../../index.html">Main Page</a> &nbsp;
<a class="qindex" href="modules.html">Groups</a> &nbsp;
<a class="qindex" href="namespaces.html"> Namespaces</a> &nbsp;
</center>
<hr width="100%"/>
<!-- Generated by Doxygen 1.5.1 -->
<div class="nav">
<a class="el" href="namespacesigc.html">sigc</a>::<a class="el" href="classsigc_1_1signal.html">signal</a></div>
<h1>sigc::signal&lt; T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7 &gt; Class Template Reference<br>
<small>
[<a class="el" href="group__signal.html">Signals</a>]</small>
</h1><!-- doxytag: class="sigc::signal" --><!-- doxytag: inherits="sigc::signal7&lt;T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7, nil&gt;" -->Convenience wrapper for the numbered <a class="el" href="classsigc_1_1signal.html">sigc::signal</a># templates.
<a href="#_details">More...</a>
<p>
Inheritance diagram for sigc::signal&lt; T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7 &gt;:<p><center><img src="classsigc_1_1signal__inherit__graph.png" border="0" usemap="#sigc_1_1signal_3_01T__return_00_01T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01T__arg5_00a530865d7dae4ead50763631a99846f4" alt="Inheritance graph"></center>
<map name="sigc_1_1signal_3_01T__return_00_01T__arg1_00_01T__arg2_00_01T__arg3_00_01T__arg4_00_01T__arg5_00a530865d7dae4ead50763631a99846f4">
<area href="classsigc_1_1signal7.html" shape="rect" coords="5,161,565,188" alt="">
<area href="structsigc_1_1signal__base.html" shape="rect" coords="221,84,349,111" alt="">
<area href="structsigc_1_1trackable.html" shape="rect" coords="229,7,341,33" alt="">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="classsigc_1_1signal-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">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1signal.html#50432d1aebfbee5ef17a3f434d0c50bf">signal</a> ()</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1signal.html#271b486daa2bf801ed7d019da9aa33a1">signal</a> (const <a class="el" href="classsigc_1_1signal.html">signal</a>&amp; src)</td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1signal_1_1accumulated.html">accumulated</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convenience wrapper for the numbered <a class="el" href="classsigc_1_1signal.html">sigc::signal</a># templates. <a href="classsigc_1_1signal_1_1accumulated.html#_details">More...</a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<h3>template &lt;class T_return, class T_arg1 = nil, class T_arg2 = nil, class T_arg3 = nil, class T_arg4 = nil, class T_arg5 = nil, class T_arg6 = nil, class T_arg7 = nil&gt;<br>
class sigc::signal&lt; T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7 &gt;</h3>
Convenience wrapper for the numbered <a class="el" href="classsigc_1_1signal.html">sigc::signal</a># templates.
<p>
signal can be used to <a class="el" href="classsigc_1_1signal7.html#dc55ac9b0f935fd87a67904022e03cb2">connect()</a> slots that are invoked during subsequent calls to <a class="el" href="classsigc_1_1signal7.html#547621f6b429c128b0df1204707465fe">emit()</a>. Any functor or slot can be passed into <a class="el" href="classsigc_1_1signal7.html#dc55ac9b0f935fd87a67904022e03cb2">connect()</a>. It is converted into a slot implicitly.<p>
If you want to connect one signal to another, use <a class="el" href="classsigc_1_1signal7.html#216c59a90d33b42e293e83c053c0fdf0">make_slot()</a> to retrieve a functor that emits the signal when invoked.<p>
Be careful if you directly pass one signal into the <a class="el" href="classsigc_1_1signal7.html#dc55ac9b0f935fd87a67904022e03cb2">connect()</a> method of another: a shallow copy of the signal is made and the signal's slots are not disconnected until both the signal and its clone are destroyed which is probably not what you want!<p>
An STL-style list interface for the signal's list of slots can be retrieved with <a class="el" href="classsigc_1_1signal7.html#68153d9079b4881352113079cd6216f7">slots()</a>. This interface supports iteration, insertion and removal of slots.<p>
The template arguments determine the function signature of the <a class="el" href="classsigc_1_1signal7.html#547621f6b429c128b0df1204707465fe">emit()</a> function:<ul>
<li><em>T_return</em> The desired return type of the <a class="el" href="classsigc_1_1signal7.html#547621f6b429c128b0df1204707465fe">emit()</a> function.</li><li><em>T_arg1</em> Argument type used in the definition of <a class="el" href="classsigc_1_1signal7.html#547621f6b429c128b0df1204707465fe">emit()</a>. The default <code>nil</code> means no argument.</li><li><em>T_arg2</em> Argument type used in the definition of <a class="el" href="classsigc_1_1signal7.html#547621f6b429c128b0df1204707465fe">emit()</a>. The default <code>nil</code> means no argument.</li><li><em>T_arg3</em> Argument type used in the definition of <a class="el" href="classsigc_1_1signal7.html#547621f6b429c128b0df1204707465fe">emit()</a>. The default <code>nil</code> means no argument.</li><li><em>T_arg4</em> Argument type used in the definition of <a class="el" href="classsigc_1_1signal7.html#547621f6b429c128b0df1204707465fe">emit()</a>. The default <code>nil</code> means no argument.</li><li><em>T_arg5</em> Argument type used in the definition of <a class="el" href="classsigc_1_1signal7.html#547621f6b429c128b0df1204707465fe">emit()</a>. The default <code>nil</code> means no argument.</li><li><em>T_arg6</em> Argument type used in the definition of <a class="el" href="classsigc_1_1signal7.html#547621f6b429c128b0df1204707465fe">emit()</a>. The default <code>nil</code> means no argument.</li><li><em>T_arg7</em> Argument type used in the definition of <a class="el" href="classsigc_1_1signal7.html#547621f6b429c128b0df1204707465fe">emit()</a>. The default <code>nil</code> means no argument.</li></ul>
<p>
To specify an accumulator type the nested class <a class="el" href="classsigc_1_1signal_1_1accumulated.html">signal::accumulated</a> can be used.<p>
<dl class="user" compact><dt><b>Example:</b></dt><dd><div class="fragment"><pre class="fragment"> <span class="keywordtype">void</span> foo(<span class="keywordtype">int</span>) {}
<a class="code" href="classsigc_1_1signal.html">sigc::signal&lt;void, long&gt;</a> sig;
sig.<a class="code" href="classsigc_1_1signal7.html#dc55ac9b0f935fd87a67904022e03cb2">connect</a>(<a class="code" href="group__ptr__fun.html#gda8b678665c14dc85eb32d25b7299465">sigc::ptr_fun</a>(&amp;foo));
sig.<a class="code" href="classsigc_1_1signal7.html#547621f6b429c128b0df1204707465fe">emit</a>(19);
</pre></div> </dd></dl>
<p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="50432d1aebfbee5ef17a3f434d0c50bf"></a><!-- doxytag: member="sigc::signal::signal" ref="50432d1aebfbee5ef17a3f434d0c50bf" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_return, class T_arg1 = nil, class T_arg2 = nil, class T_arg3 = nil, class T_arg4 = nil, class T_arg5 = nil, class T_arg6 = nil, class T_arg7 = nil&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsigc_1_1signal.html">sigc::signal</a>&lt;T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7&gt;::<a class="el" href="classsigc_1_1signal.html">signal</a> </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="271b486daa2bf801ed7d019da9aa33a1"></a><!-- doxytag: member="sigc::signal::signal" ref="271b486daa2bf801ed7d019da9aa33a1" args="(const signal &amp;src)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_return, class T_arg1 = nil, class T_arg2 = nil, class T_arg3 = nil, class T_arg4 = nil, class T_arg5 = nil, class T_arg6 = nil, class T_arg7 = nil&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classsigc_1_1signal.html">sigc::signal</a>&lt;T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7&gt;::<a class="el" href="classsigc_1_1signal.html">signal</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classsigc_1_1signal.html">signal</a>&lt;T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7&gt;&amp;&nbsp;</td>
<td class="paramname"> <em>src</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="signal_8h.html">signal.h</a></ul>
<hr><address><small>
Generated for libsigc++ 2.0 by <a href="http://www.doxygen.org/index.html">
Doxygen</a> 1.5.1 &copy;&nbsp;1997-2001</small></address>
</body>
</html>