Sophie

Sophie

distrib > CentOS > 5 > x86_64 > by-pkgid > f89abdeb016114b348a5c554d8214329 > files > 429

kdelibs-apidocs-3.5.4-30.el5.centos.x86_64.rpm

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en_US" xml:lang="en_US">

<head>
  <title>interfaces: KIMIface Class Reference (interfaces)</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

  <meta http-equiv="Content-Style-Type" content="text/css" />

  <meta http-equiv="pics-label" content='(pics-1.1 "http://www.icra.org/ratingsv02.html" comment "ICRAonline DE v2.0" l gen true for "http://www.kde.org"  r (nz 1 vz 1 lz 1 oz 1 cb 1) "http://www.rsac.org/ratingsv01.html" l gen true for "http://www.kde.org"  r (n 0 s 0 v 0 l 0))' />

  <meta name="trademark" content="KDE e.V." />
  <meta name="description" content="K Desktop Environment Homepage, KDE.org" />
  <meta name="MSSmartTagsPreventParsing" content="true" />
  <meta name="robots" content="all" />

  <link rel="shortcut icon" href="../../favicon.ico" />

<link rel="stylesheet" media="screen" type="text/css" title="APIDOX" href="doxygen.css" />



</head>

<body>

<div id="nav_header_top" align="right">
  <a href="#content" class="doNotDisplay" accesskey="2">Skip to main content ::</a>

  <a href="../.."><img id="nav_header_logo" alt="Home" align="left" src="../../kde_gear_64.png" border="0" /></a>
  <span class="doNotDisplay">::</span>

  <div id="nav_header_title" align="left">KDE API Reference</div>


</div>

<div id="nav_header_bottom" align="right">
  <span class="doNotDisplay">:: <a href="#navigation" accesskey="5">Skip to Link Menu</a><br/></span>
  <div id="nav_header_bottom_right" style="text-align: left;">
/ <a href="../..">API Reference</a>
 / <a href=".">interfaces</a>
  </div>
</div>


<table id="main" border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
      <td valign="top" class="menuheader" height="0"></td>

  <td id="contentcolumn" valign="top" rowspan="2" >
    <div id="content" style="padding-top: 0px;"><div style="width:100%; margin: 0px; padding: 0px;">
    <a name="content"></a>


<!-- Generated by Doxygen 1.4.7 -->
<h1>KIMIface Class Reference</h1><!-- doxytag: class="KIMIface" --><!-- doxytag: inherits="DCOPObject" --><code>#include &lt;<a class="el" href="kimiface_8h-source.html">kimiface.h</a>&gt;</code>
<p>
<p>Inheritance diagram for KIMIface:
<p><center><img src="classKIMIface.png" usemap="#KIMIface_map" border="0" alt=""></center>
<map name="KIMIface_map">
<area doxygen="dcop.tag:../../dcop/html/" href="../../dcop/html/classDCOPObject.html" alt="DCOPObject" shape="rect" coords="0,0,85,24">
</map>
<a href="classKIMIface-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
Generic DCOP interface for <a class="elRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/namespaceKDE.html">KDE</a> instant messenger applications. 
<p>
The interface has two parts:<ul>
<li>methods to get information about IM-contacts, such as their reachability or their presence status (if the are online or away, etc)</li><li>methods to initiate communication with IM-contacts, e.g. sending messages</li></ul>
<p>
<dl compact><dt><b>Note:</b></dt><dd>If you are looking for a information about accessing application's that implement this interface, have a look at the <a class="el" href="classKIMProxy.html">KIMProxy</a> class.</dd></dl>
Contacts are identified using unique identifier strings (UID) used by KABC, the <a class="elRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/namespaceKDE.html">KDE</a> address book library. The UID generation is handled by KABC::Addressee so the your application will either have to access the address book or provide a possibility for associating a contact of your application with an entry of the address book.<p>
<dl compact><dt><b>Note:</b></dt><dd>one omission of this interface is the lack of control over the range of values used for protocols' names.</dd></dl>
If you are implementing this interface, note that your application must have the following information in its desktop file, so that it can be identified as providing <a class="el" href="classKIMIface.html">KIMIface</a> at runtime: <div class="fragment"><pre class="fragment"> X-DCOP-ServiceName=&lt;application-<a class="codeRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/namespaceKStdAccel.html#737bc2466b1f000625fe8ebddffbb09d">name</a>&gt;
 ServiceTypes=DCOP/InstantMessenger
</pre></div> and the class implementing <a class="el" href="classKIMIface.html">KIMIface</a> must pass "KIMIface" to the <a class="elRef" doxygen="dcop.tag:../../dcop/html/" href="../../dcop/html/classDCOPObject.html">DCOPObject</a> constructor: <div class="fragment"><pre class="fragment"> <span class="comment">// just need QObject inheritance and Q_OBJECT if you want signals and slots</span>
 <span class="comment">// no need to use K_DCOP macro again</span>

 <span class="keyword">class </span>MyIMIface : <span class="keyword">public</span> <a class="codeRef" doxygen="qt.tag:" href="qobject.html">QObject</a>, <span class="keyword">public</span> <a class="code" href="classKIMIface.html">KIMIface</a>
 {
     Q_OBJECT
 <span class="keyword">public</span>:
    MyIMIface(<a class="codeRef" doxygen="qt.tag:" href="qobject.html">QObject</a>* parent = 0, <span class="keyword">const</span> <span class="keywordtype">char</span>* name) :
        <a class="codeRef" doxygen="dcop.tag:../../dcop/html/" href="../../dcop/html/classDCOPObject.html">DCOPObject</a>(<span class="stringliteral">"KIMIface"</span>), <span class="comment">// &lt;-- passing the interface name as required</span>
        <a class="codeRef" doxygen="qt.tag:" href="qobject.html">QObject</a>(parent, name) {}
 };
</pre></div><p>
The DCOP part of the interface needs to be processed by the DCOP IDL compiler. The <a class="elRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/namespaceKDE.html">KDE</a> autotools framework will do this automatically, all you have to do is add kimiface.skel and kimiface.stub to the <code>SOURCES</code> list in your <code>Makefile.am</code> <p>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="classKIMProxy.html">KIMProxy</a> <p>
KABC::AddressBook <p>
KABC::Addressee</dd></dl>
<dl compact><dt><b>Since:</b></dt><dd>3.3 </dd></dl>
<dl compact><dt><b>Author:</b></dt><dd>Will Stephenson &lt;<a href="mailto:lists@stevello.free-online.co.uk">lists@stevello.free-online.co.uk</a>&gt; </dd></dl>

<p>

<p>
Definition at line <a class="el" href="kimiface_8h-source.html#l00085">85</a> of file <a class="el" href="kimiface_8h-source.html">kimiface.h</a>.<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>DCOP Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="elRef" doxygen="qt.tag:" href="qstringlist.html">QStringList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKIMIface.html#6dec061f109a7929b95b29ae6beade55">allContacts</a> ()=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="elRef" doxygen="qt.tag:" href="qstringlist.html">QStringList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKIMIface.html#1f3c8cce3e1ab97cb2a0775f46f78592">reachableContacts</a> ()=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="elRef" doxygen="qt.tag:" href="qstringlist.html">QStringList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKIMIface.html#098efa69d4e27164b8092cfa021e031e">onlineContacts</a> ()=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="elRef" doxygen="qt.tag:" href="qstringlist.html">QStringList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKIMIface.html#195de9417f76fa8d88302405de9284a1">fileTransferContacts</a> ()=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKIMIface.html#8aa014d82e6cdae7e74a371f25063283">isPresent</a> (const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;uid)=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKIMIface.html#ac6f0ba963b2a7a1a22aec7bd20e38fc">displayName</a> (const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;uid)=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKIMIface.html#a7f8d0c01f12ab13b8faee681d5cc1f3">presenceString</a> (const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;uid)=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKIMIface.html#0100d77fb96b40ba5b47ff0eef989178">presenceStatus</a> (const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;uid)=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKIMIface.html#ce9e8ccd05eca2a415be880c9a335900">canReceiveFiles</a> (const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;uid)=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKIMIface.html#992d46ec4844acbce274775070d35069">canRespond</a> (const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;uid)=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKIMIface.html#d7d53da7ae9a4208633a6488f2ea1ac5">locate</a> (const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;contactId, const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;protocol)=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="elRef" doxygen="qt.tag:" href="qpixmap.html">QPixmap</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKIMIface.html#0f0cc5a23277d9becd57ffef6cf10e97">icon</a> (const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;uid)=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKIMIface.html#01c7b11eefd3d3bc4ad355b335a24d15">context</a> (const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;uid)=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="elRef" doxygen="qt.tag:" href="qstringlist.html">QStringList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKIMIface.html#8cd2b852952e0d2072bafff36ef928c4">protocols</a> ()=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKIMIface.html#fa35037e419a99d19eecae6eb49cb076">messageContact</a> (const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;uid, const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;message)=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKIMIface.html#f76a5092a737fd26aef8be599ffebda6">messageNewContact</a> (const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;contactId, const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;protocol)=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKIMIface.html#56e9a33392f0cdb09ba632d839d615f4">chatWithContact</a> (const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;uid)=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKIMIface.html#1aa51b4d57343ebcb6cf2c4f9fcd62f8">sendFile</a> (const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;uid, const <a class="elRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html">KURL</a> &amp;sourceURL, const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;altFileName=QString::null, uint fileSize=0)=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKIMIface.html#b0e1a3c192e4c0ddc2c39d00b68fbc26">addContact</a> (const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;contactId, const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;protocol)=0</td></tr>

<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8e0dc652e36f42d4e2f2874d4729a226"></a><!-- doxytag: member="KIMIface::__pad0__" ref="8e0dc652e36f42d4e2f2874d4729a226" args="" -->
k_dcop_signals&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKIMIface.html#8e0dc652e36f42d4e2f2874d4729a226">__pad0__</a>: void contactPresenceChanged( <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> uid</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3d903d6289c99094df12c0ee4c88e3e1"></a><!-- doxytag: member="KIMIface::appId" ref="3d903d6289c99094df12c0ee4c88e3e1" args="" -->
k_dcop_signals <a class="elRef" doxygen="qt.tag:" href="qcstring.html">QCString</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKIMIface.html#3d903d6289c99094df12c0ee4c88e3e1">appId</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="022929ae1fe830fd33596139d56d58d0"></a><!-- doxytag: member="KIMIface::presence" ref="022929ae1fe830fd33596139d56d58d0" args="" -->
k_dcop_signals <a class="elRef" doxygen="qt.tag:" href="qcstring.html">QCString</a> int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKIMIface.html#022929ae1fe830fd33596139d56d58d0">presence</a></td></tr>

</table>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="b0e1a3c192e4c0ddc2c39d00b68fbc26"></a><!-- doxytag: member="KIMIface::addContact" ref="b0e1a3c192e4c0ddc2c39d00b68fbc26" args="(const QString &amp;contactId, const QString &amp;protocol)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool KIMIface::addContact           </td>
          <td>(</td>
          <td class="paramtype">const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>contactId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>protocol</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add a new contact given its protocol specific identifier. 
<p>
Implementations might add the contact silently, including sending an authorization request if necessary, ask the user for confirmation or just prefill the usual contact addingGUI.<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>contactId</em>&nbsp;</td><td>the protocol specific identifier for the contact e.g. UIN for ICQ, screenname for AIM, nick for IRC </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>protocol</em>&nbsp;</td><td>the IM protocol/service to use. See <a class="el" href="classKIMIface.html#8cd2b852952e0d2072bafff36ef928c4">protocols()</a> </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>whether the add succeeded. <code>false</code> may signal already present, protocol not supported, or add operation not supported.</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="classKIMIface.html#d7d53da7ae9a4208633a6488f2ea1ac5">locate()</a> <p>
<a class="el" href="classKIMIface.html#8cd2b852952e0d2072bafff36ef928c4">protocols()</a> <p>
<a class="el" href="classKIMIface.html#f76a5092a737fd26aef8be599ffebda6">messageNewContact()</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="6dec061f109a7929b95b29ae6beade55"></a><!-- doxytag: member="KIMIface::allContacts" ref="6dec061f109a7929b95b29ae6beade55" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="elRef" doxygen="qt.tag:" href="qstringlist.html">QStringList</a> KIMIface::allContacts           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Obtain a list of IM-contacts that are known to the application. 
<p>
Return a list of KABC UIDs of all the contacts you have such IDs for.<p>
<dl compact><dt><b>Returns:</b></dt><dd>a list of KABC UIDs known to the application</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="classKIMIface.html#1f3c8cce3e1ab97cb2a0775f46f78592">reachableContacts()</a> <p>
<a class="el" href="classKIMIface.html#098efa69d4e27164b8092cfa021e031e">onlineContacts()</a> <p>
<a class="el" href="classKIMIface.html#195de9417f76fa8d88302405de9284a1">fileTransferContacts()</a> <p>
<a class="el" href="classKIMIface.html#8aa014d82e6cdae7e74a371f25063283">isPresent()</a> <p>
KABC::Addressee::uid() </dd></dl>

</div>
</div><p>
<a class="anchor" name="ce9e8ccd05eca2a415be880c9a335900"></a><!-- doxytag: member="KIMIface::canReceiveFiles" ref="ce9e8ccd05eca2a415be880c9a335900" args="(const QString &amp;uid)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool KIMIface::canReceiveFiles           </td>
          <td>(</td>
          <td class="paramtype">const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>uid</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Indicate if a given contact can receive files. 
<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>uid</em>&nbsp;</td><td>the KABC UID you want to the file transfer capability for </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>whether the specified contact can receive files</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="classKIMIface.html#195de9417f76fa8d88302405de9284a1">fileTransferContacts()</a> <p>
KABC::Addressee::uid() </dd></dl>

</div>
</div><p>
<a class="anchor" name="992d46ec4844acbce274775070d35069"></a><!-- doxytag: member="KIMIface::canRespond" ref="992d46ec4844acbce274775070d35069" args="(const QString &amp;uid)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool KIMIface::canRespond           </td>
          <td>(</td>
          <td class="paramtype">const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>uid</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Indicate if a given contact will be able to respond. 
<p>
Some media are unidirectional (e.g., sending SMS via a web interface). This refers to the contact's ability to respond as defined by the medium, not by their presence.<p>
Someone may appear offline (SMS has no presence) to you but in fact be able to respond.<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>uid</em>&nbsp;</td><td>the KABC UID you are interested in </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>whether the specified contact can respond</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="classKIMIface.html#8aa014d82e6cdae7e74a371f25063283">isPresent()</a> <p>
KABC::Addressee::uid() </dd></dl>

</div>
</div><p>
<a class="anchor" name="56e9a33392f0cdb09ba632d839d615f4"></a><!-- doxytag: member="KIMIface::chatWithContact" ref="56e9a33392f0cdb09ba632d839d615f4" args="(const QString &amp;uid)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void KIMIface::chatWithContact           </td>
          <td>(</td>
          <td class="paramtype">const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>uid</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Start a chat session with the specified contact. 
<p>
Applications that do not support a chat mode or when the IM-service of the given contact does not support it, this can also open a normal message input GUI.<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>uid</em>&nbsp;</td><td>the KABC UID you want to chat with</td></tr>
  </table>
</dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="classKIMIface.html#fa35037e419a99d19eecae6eb49cb076">messageContact()</a> <p>
<a class="el" href="classKIMIface.html#f76a5092a737fd26aef8be599ffebda6">messageNewContact()</a> <p>
<a class="el" href="classKIMIface.html#1aa51b4d57343ebcb6cf2c4f9fcd62f8">sendFile()</a> <p>
<a class="el" href="classKIMIface.html#8aa014d82e6cdae7e74a371f25063283">isPresent()</a> <p>
<a class="el" href="classKIMIface.html#1f3c8cce3e1ab97cb2a0775f46f78592">reachableContacts()</a> <p>
KABC::Addressee::uid() </dd></dl>

</div>
</div><p>
<a class="anchor" name="01c7b11eefd3d3bc4ad355b335a24d15"></a><!-- doxytag: member="KIMIface::context" ref="01c7b11eefd3d3bc4ad355b335a24d15" args="(const QString &amp;uid)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> KIMIface::context           </td>
          <td>(</td>
          <td class="paramtype">const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>uid</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Obtain the given contact's current context (home, work, or any). 
<p>
Not all IM services/protocols support the concept of contexts. If the given UID maps to such a service, just return <code>QString::null</code> <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>uid</em>&nbsp;</td><td>the KABC UID you want the context for </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>a string describing the context, or <code>QString::null</code> if not supported or if the contact is unknown</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="classKIMIface.html#8aa014d82e6cdae7e74a371f25063283">isPresent()</a> <p>
KABC::Addressee::uid() </dd></dl>

</div>
</div><p>
<a class="anchor" name="ac6f0ba963b2a7a1a22aec7bd20e38fc"></a><!-- doxytag: member="KIMIface::displayName" ref="ac6f0ba963b2a7a1a22aec7bd20e38fc" args="(const QString &amp;uid)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> KIMIface::displayName           </td>
          <td>(</td>
          <td class="paramtype">const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>uid</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Obtain the IM app's idea of the contact's display name. 
<p>
Useful if KABC lookups may be too slow. Should return whatever the application uses in its contact list or similar GUI, e.g. a nick name, a user configured name string, etc.<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>uid</em>&nbsp;</td><td>the KABC UID you are interested in </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the corresponding display name or <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a>:null if the UID is unknown</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="classKIMIface.html#8aa014d82e6cdae7e74a371f25063283">isPresent()</a> <p>
<a class="el" href="classKIMIface.html#a7f8d0c01f12ab13b8faee681d5cc1f3">presenceString()</a> <p>
<a class="el" href="classKIMIface.html#0100d77fb96b40ba5b47ff0eef989178">presenceStatus()</a> <p>
KABC::Addressee::uid() </dd></dl>

</div>
</div><p>
<a class="anchor" name="195de9417f76fa8d88302405de9284a1"></a><!-- doxytag: member="KIMIface::fileTransferContacts" ref="195de9417f76fa8d88302405de9284a1" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="elRef" doxygen="qt.tag:" href="qstringlist.html">QStringList</a> KIMIface::fileTransferContacts           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Obtain a list of IM-contacts who may receive file transfers. 
<p>
Return a list of KABC UIDs of the contacts that are capable of receiving file transfers based on the IM-service they are associated with, i.e. if it is technically able to provide this, on their online state, i.e. can likely not receive files while offline, and perhaps even information your application has additionally, e.g. a user config that tells you that the contact is behind a firewall.<p>
The simplest implementation is to return the same list as <a class="el" href="classKIMIface.html#098efa69d4e27164b8092cfa021e031e">onlineContacts()</a>, provided all the IM-services that are currently used support it.<p>
<dl compact><dt><b>Returns:</b></dt><dd>a list of KABC UIDs capable of file transfer</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="classKIMIface.html#6dec061f109a7929b95b29ae6beade55">allContacts()</a> <p>
<a class="el" href="classKIMIface.html#1f3c8cce3e1ab97cb2a0775f46f78592">reachableContacts()</a> <p>
<a class="el" href="classKIMIface.html#098efa69d4e27164b8092cfa021e031e">onlineContacts()</a> <p>
<a class="el" href="classKIMIface.html#ce9e8ccd05eca2a415be880c9a335900">canReceiveFiles()</a> <p>
<a class="el" href="classKIMIface.html#1aa51b4d57343ebcb6cf2c4f9fcd62f8">sendFile()</a> <p>
KABC::Addressee::uid() </dd></dl>

</div>
</div><p>
<a class="anchor" name="0f0cc5a23277d9becd57ffef6cf10e97"></a><!-- doxytag: member="KIMIface::icon" ref="0f0cc5a23277d9becd57ffef6cf10e97" args="(const QString &amp;uid)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="elRef" doxygen="qt.tag:" href="qpixmap.html">QPixmap</a> KIMIface::icon           </td>
          <td>(</td>
          <td class="paramtype">const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>uid</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Obtain the icon representing the IM presence for the specified contact. 
<p>
Return the image the application would use to display a contact's presence. The size and other properties of the image are currently unspecified.<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>uid</em>&nbsp;</td><td>the KABC UID you want the presence icon for </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>a pixmap representing the contact's presence or a null pixmap if the contact is unknown. See <a class="elRef" doxygen="qt.tag:" href="qpixmap.html#isNull">QPixmap::isNull()</a></dd></dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="classKIMIface.html#8aa014d82e6cdae7e74a371f25063283">isPresent()</a> <p>
<a class="el" href="classKIMIface.html#a7f8d0c01f12ab13b8faee681d5cc1f3">presenceString()</a> <p>
<a class="el" href="classKIMIface.html#0100d77fb96b40ba5b47ff0eef989178">presenceStatus()</a> <p>
KABC::Addressee::uid() </dd></dl>

</div>
</div><p>
<a class="anchor" name="8aa014d82e6cdae7e74a371f25063283"></a><!-- doxytag: member="KIMIface::isPresent" ref="8aa014d82e6cdae7e74a371f25063283" args="(const QString &amp;uid)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool KIMIface::isPresent           </td>
          <td>(</td>
          <td class="paramtype">const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>uid</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Confirm if a given contact is known to the IM application. 
<p>
Check if you can map the given KABC UID to one if the IM-contacts, e.g. the would be part of the list returned by <a class="el" href="classKIMIface.html#6dec061f109a7929b95b29ae6beade55">allContacts()</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>uid</em>&nbsp;</td><td>the KABC UID you are interested in </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>whether the program knows of this KABC UID</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="classKIMIface.html#6dec061f109a7929b95b29ae6beade55">allContacts()</a> <p>
<a class="el" href="classKIMIface.html#a7f8d0c01f12ab13b8faee681d5cc1f3">presenceString()</a> <p>
<a class="el" href="classKIMIface.html#0100d77fb96b40ba5b47ff0eef989178">presenceStatus()</a> <p>
KABC::Addressee::uid() </dd></dl>

</div>
</div><p>
<a class="anchor" name="d7d53da7ae9a4208633a6488f2ea1ac5"></a><!-- doxytag: member="KIMIface::locate" ref="d7d53da7ae9a4208633a6488f2ea1ac5" args="(const QString &amp;contactId, const QString &amp;protocol)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> KIMIface::locate           </td>
          <td>(</td>
          <td class="paramtype">const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>contactId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>protocol</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Obtain the KABC UID corresponding to the given IM address. 
<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>contactId</em>&nbsp;</td><td>the protocol specific identifier for the contact, e.g. UIN for ICQ, screenname for AIM, nick for IRC </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>protocol</em>&nbsp;</td><td>the IM protocol/service to check. See <a class="el" href="classKIMIface.html#8cd2b852952e0d2072bafff36ef928c4">protocols()</a> </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the KABC UID for the given contact or <code>QString::null</code> if not found or either input stream was empty or the protocol is not supported</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="classKIMIface.html#8cd2b852952e0d2072bafff36ef928c4">protocols()</a> <p>
<a class="el" href="classKIMIface.html#b0e1a3c192e4c0ddc2c39d00b68fbc26">addContact()</a> <p>
<a class="el" href="classKIMIface.html#8aa014d82e6cdae7e74a371f25063283">isPresent()</a> <p>
KABC::Addressee::uid() </dd></dl>

</div>
</div><p>
<a class="anchor" name="fa35037e419a99d19eecae6eb49cb076"></a><!-- doxytag: member="KIMIface::messageContact" ref="fa35037e419a99d19eecae6eb49cb076" args="(const QString &amp;uid, const QString &amp;message)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void KIMIface::messageContact           </td>
          <td>(</td>
          <td class="paramtype">const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>uid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>message</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Send a single message to the specified contact. 
<p>
Any response will be handled by the IM client as a normal conversation.<p>
Implementations might send the message silently, ask the user for permission or just prefill the usual message input GUI.<p>
<dl compact><dt><b>Note:</b></dt><dd>As sending any text could potentially be a breach of the user's privacy it is recommended to let the user know about it.</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>uid</em>&nbsp;</td><td>the KABC UID you want to send the message to </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>message</em>&nbsp;</td><td>the message text to send to the contact</td></tr>
  </table>
</dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="classKIMIface.html#f76a5092a737fd26aef8be599ffebda6">messageNewContact()</a> <p>
<a class="el" href="classKIMIface.html#56e9a33392f0cdb09ba632d839d615f4">chatWithContact()</a> <p>
<a class="el" href="classKIMIface.html#1aa51b4d57343ebcb6cf2c4f9fcd62f8">sendFile()</a> <p>
<a class="el" href="classKIMIface.html#8aa014d82e6cdae7e74a371f25063283">isPresent()</a> <p>
<a class="el" href="classKIMIface.html#1f3c8cce3e1ab97cb2a0775f46f78592">reachableContacts()</a> <p>
KABC::Addressee::uid() </dd></dl>

</div>
</div><p>
<a class="anchor" name="f76a5092a737fd26aef8be599ffebda6"></a><!-- doxytag: member="KIMIface::messageNewContact" ref="f76a5092a737fd26aef8be599ffebda6" args="(const QString &amp;contactId, const QString &amp;protocol)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void KIMIface::messageNewContact           </td>
          <td>(</td>
          <td class="paramtype">const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>contactId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>protocol</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Send a single message to a contact given only its protocol specific identifier. 
<p>
This could be used to send a message without having to know the KABC UID of the contact or without having to add it first.<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>contactId</em>&nbsp;</td><td>the protocol specific identifier for the contact, e.g. UIN for ICQ, screenname for AIM, nick for IRC </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>protocol</em>&nbsp;</td><td>the IM protocol/service to check. See <a class="el" href="classKIMIface.html#8cd2b852952e0d2072bafff36ef928c4">protocols()</a></td></tr>
  </table>
</dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="classKIMIface.html#fa35037e419a99d19eecae6eb49cb076">messageContact()</a> <p>
<a class="el" href="classKIMIface.html#56e9a33392f0cdb09ba632d839d615f4">chatWithContact()</a> <p>
<a class="el" href="classKIMIface.html#1aa51b4d57343ebcb6cf2c4f9fcd62f8">sendFile()</a> <p>
<a class="el" href="classKIMIface.html#d7d53da7ae9a4208633a6488f2ea1ac5">locate()</a> <p>
<a class="el" href="classKIMIface.html#8cd2b852952e0d2072bafff36ef928c4">protocols()</a> <p>
<a class="el" href="classKIMIface.html#b0e1a3c192e4c0ddc2c39d00b68fbc26">addContact()</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="098efa69d4e27164b8092cfa021e031e"></a><!-- doxytag: member="KIMIface::onlineContacts" ref="098efa69d4e27164b8092cfa021e031e" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="elRef" doxygen="qt.tag:" href="qstringlist.html">QStringList</a> KIMIface::onlineContacts           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Obtain a list of IM-contacts that are currently online. 
<p>
Return a list of KABC UIDs of the contacts you have any presence information for that indicates that they are connected to the IM-service they are associated with.<p>
<dl compact><dt><b>Returns:</b></dt><dd>a list of KABC UIDs who are online with unspecified presence</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="classKIMIface.html#6dec061f109a7929b95b29ae6beade55">allContacts()</a> <p>
<a class="el" href="classKIMIface.html#1f3c8cce3e1ab97cb2a0775f46f78592">reachableContacts()</a> <p>
<a class="el" href="classKIMIface.html#195de9417f76fa8d88302405de9284a1">fileTransferContacts()</a> <p>
<a class="el" href="classKIMIface.html#fa35037e419a99d19eecae6eb49cb076">messageContact()</a> <p>
<a class="el" href="classKIMIface.html#56e9a33392f0cdb09ba632d839d615f4">chatWithContact()</a> <p>
KABC::Addressee::uid() </dd></dl>

</div>
</div><p>
<a class="anchor" name="0100d77fb96b40ba5b47ff0eef989178"></a><!-- doxytag: member="KIMIface::presenceStatus" ref="0100d77fb96b40ba5b47ff0eef989178" args="(const QString &amp;uid)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int KIMIface::presenceStatus           </td>
          <td>(</td>
          <td class="paramtype">const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>uid</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Obtain the IM presence as a number for the specified contact. 
<p>
Return one of the following values depending on the given contact's presence:<ul>
<li>0 - <code>Unknown:</code> for contacts where you can not use any of the other values</li></ul>
<p>
<ul>
<li>1 - <code>Offline:</code> for contacts that are offline, i.e. not connected to their IM-service. If the application itself or the IM-service for the given contact is offline return <code>Unknown</code> instead</li></ul>
<p>
<ul>
<li>2 - <code>Connecting</code> </li></ul>
<p>
<ul>
<li>3 - <code>Away:</code> for contacts that are connected to their IM-service but not <code>Online</code> </li></ul>
<p>
<ul>
<li>4 - <code>Online</code> </li></ul>
<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>uid</em>&nbsp;</td><td>the KABC UID you want the presence for </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>a numeric representation of presence - currently one of 0 (Unknown), 1 (Offline), 2 (Connecting), 3 (Away), 4 (Online). Returns 0 if the given UID is unknown</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="classKIMIface.html#8aa014d82e6cdae7e74a371f25063283">isPresent()</a> <p>
<a class="el" href="classKIMIface.html#a7f8d0c01f12ab13b8faee681d5cc1f3">presenceString()</a> <p>
KABC::Addressee::uid() </dd></dl>

</div>
</div><p>
<a class="anchor" name="a7f8d0c01f12ab13b8faee681d5cc1f3"></a><!-- doxytag: member="KIMIface::presenceString" ref="a7f8d0c01f12ab13b8faee681d5cc1f3" args="(const QString &amp;uid)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> KIMIface::presenceString           </td>
          <td>(</td>
          <td class="paramtype">const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>uid</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Obtain the IM presence as a i18ned string for the specified contact. 
<p>
Return a translated string your application would use when displaying the contact's presence, e.g. i18n("Online"), i18n("Away")<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>uid</em>&nbsp;</td><td>the KABC UID you want the presence for </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the i18ned string describing the contact's presence or QString::null if the UID is unknown</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="classKIMIface.html#8aa014d82e6cdae7e74a371f25063283">isPresent()</a> <p>
<a class="el" href="classKIMIface.html#0100d77fb96b40ba5b47ff0eef989178">presenceStatus()</a> <p>
KABC::Addressee::uid() </dd></dl>

</div>
</div><p>
<a class="anchor" name="8cd2b852952e0d2072bafff36ef928c4"></a><!-- doxytag: member="KIMIface::protocols" ref="8cd2b852952e0d2072bafff36ef928c4" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="elRef" doxygen="qt.tag:" href="qstringlist.html">QStringList</a> KIMIface::protocols           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Obtain a list of supported IM services/protocols. 
<p>
Protocol names are currently of the form "protocol name" + "Protocol" for example:<ul>
<li>AIMProtocol: AOL instant messenger protocol</li><li>MSNProtocol: Microsoft messanger protocol</li><li>ICQProtocol: AOL (Mirabilis) ICQ protocol</li><li>....</li></ul>
<p>
The string is currently just an identifier to use with methods such as <a class="el" href="classKIMIface.html#d7d53da7ae9a4208633a6488f2ea1ac5">locate()</a>, <a class="el" href="classKIMIface.html#b0e1a3c192e4c0ddc2c39d00b68fbc26">addContact()</a> or <a class="el" href="classKIMIface.html#f76a5092a737fd26aef8be599ffebda6">messageNewContact()</a><p>
<dl compact><dt><b>Returns:</b></dt><dd>the set of protocols that the application supports</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="classKIMIface.html#d7d53da7ae9a4208633a6488f2ea1ac5">locate()</a> <p>
<a class="el" href="classKIMIface.html#b0e1a3c192e4c0ddc2c39d00b68fbc26">addContact()</a> <p>
<a class="el" href="classKIMIface.html#f76a5092a737fd26aef8be599ffebda6">messageNewContact</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="1f3c8cce3e1ab97cb2a0775f46f78592"></a><!-- doxytag: member="KIMIface::reachableContacts" ref="1f3c8cce3e1ab97cb2a0775f46f78592" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="elRef" doxygen="qt.tag:" href="qstringlist.html">QStringList</a> KIMIface::reachableContacts           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Obtain a list of IM-contacts that are currently reachable. 
<p>
Return a list of KABC UIDs of the contacts that are reachable in the sense that you are connected to the IM-service they are associated with.<p>
For example if your application supports ICQ and AIM and the ICQ account is active but the AIM account isn't, return just the ICQ contacts.<p>
<dl compact><dt><b>Returns:</b></dt><dd>a list of KABC UIDs who can receive a message, even if offline</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="classKIMIface.html#6dec061f109a7929b95b29ae6beade55">allContacts()</a> <p>
<a class="el" href="classKIMIface.html#098efa69d4e27164b8092cfa021e031e">onlineContacts()</a> <p>
<a class="el" href="classKIMIface.html#195de9417f76fa8d88302405de9284a1">fileTransferContacts()</a> <p>
<a class="el" href="classKIMIface.html#fa35037e419a99d19eecae6eb49cb076">messageContact()</a> <p>
KABC::Addressee::uid() </dd></dl>

</div>
</div><p>
<a class="anchor" name="1aa51b4d57343ebcb6cf2c4f9fcd62f8"></a><!-- doxytag: member="KIMIface::sendFile" ref="1aa51b4d57343ebcb6cf2c4f9fcd62f8" args="(const QString &amp;uid, const KURL &amp;sourceURL, const QString &amp;altFileName=QString::null, uint fileSize=0)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void KIMIface::sendFile           </td>
          <td>(</td>
          <td class="paramtype">const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>uid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="elRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html">KURL</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>sourceURL</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="elRef" doxygen="qt.tag:" href="qstring.html">QString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>altFileName</em> = <code>QString::null</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint&nbsp;</td>
          <td class="paramname"> <em>fileSize</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Send a file to the contact. 
<p>
Initiates a file transfer with the given contact if possible.<p>
Implementations might start the transfer right away, ask the user's permission or just prefill the usual file transfer GUI.<p>
<dl compact><dt><b>Note:</b></dt><dd>As sending any file could potentially be a breach of the user's privacy it is recommended to let the user know about it.</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>uid</em>&nbsp;</td><td>the KABC UID you want to send to </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sourceURL</em>&nbsp;</td><td>a <a class="elRef" doxygen="kdecore.tag:../../kdecore/html/" href="../../kdecore/html/classKURL.html">KURL</a> pointing to the file to send </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>altFileName</em>&nbsp;</td><td>an alternate filename describing the file or a description or title </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fileSize</em>&nbsp;</td><td>file size in bytes</td></tr>
  </table>
</dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="classKIMIface.html#fa35037e419a99d19eecae6eb49cb076">messageContact()</a> <p>
<a class="el" href="classKIMIface.html#f76a5092a737fd26aef8be599ffebda6">messageNewContact()</a> <p>
<a class="el" href="classKIMIface.html#56e9a33392f0cdb09ba632d839d615f4">chatWithContact()</a> <p>
<a class="el" href="classKIMIface.html#8aa014d82e6cdae7e74a371f25063283">isPresent()</a> <p>
<a class="el" href="classKIMIface.html#195de9417f76fa8d88302405de9284a1">fileTransferContacts()</a> <p>
KABC::Addressee::uid() </dd></dl>

</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="kimiface_8h-source.html">kimiface.h</a></ul>
    </div></div>


      </td>
  </tr>
  <tr>
    <td valign="top" id="leftmenu" width="25%">
      <a name="navigation"></a>
      <div class="menu_box"><h2>interfaces</h2>
<div class="nav_list">
<ul><li><a href="index.html">Main Page</a></li><li><a href="namespaces.html">Namespace List</a></li><li><a href="hierarchy.html">Class Hierarchy</a></li><li><a href="classes.html">Alphabetical List</a></li><li><a href="annotated.html">Class List</a></li><li><a href="files.html">File List</a></li><li><a href="namespacemembers.html">Namespace Members</a></li><li><a href="functions.html">Class Members</a></li></ul>
<!--
<h2>Class Picker</h2>
<div style="text-align: center;">
<form name="guideform">
<select name="guidelinks" style="width:100%;" onChange="window.location=document.guideform.guidelinks.options[document.guideform.guidelinks.selectedIndex].value">
<option value="annotated.html">-- Choose --</option>
  <option value="classEditorChooser__UI.html">editorchooser__ui</option>,  <option value="classExtTerminalInterface.html">extterminalinterface</option>,  <option value="classKFileAudioPreview.html">kfileaudiopreview</option>,  <option value="classKHE_1_1BytesEditInterface.html">khe::byteseditinterface</option>,  <option value="classKHE_1_1CharColumnInterface.html">khe::charcolumninterface</option>,  <option value="classKHE_1_1ClipboardInterface.html">khe::clipboardinterface</option>,  <option value="classKHE_1_1ValueColumnInterface.html">khe::valuecolumninterface</option>,  <option value="classKHE_1_1ZoomInterface.html">khe::zoominterface</option>,  <option value="classKIMIface.html">kimiface</option>,  <option value="classKIMIface__stub.html">kimiface__stub</option>,  <option value="classKIMProxy.html">kimproxy</option>,  <option value="classKIMProxyIface.html">kimproxyiface</option>,  <option value="classKMediaPlayer_1_1Player.html">kmediaplayer::player</option>,  <option value="classKMediaPlayer_1_1PlayerDCOPObject.html">kmediaplayer::playerdcopobject</option>,  <option value="classKMediaPlayer_1_1View.html">kmediaplayer::view</option>,  <option value="classKRegExpEditorInterface.html">kregexpeditorinterface</option>,  <option value="classKScriptClientInterface.html">kscriptclientinterface</option>,  <option value="classKScriptInterface.html">kscriptinterface</option>,  <option value="classKScriptManager.html">kscriptmanager</option>,  <option value="classKSpeech.html">kspeech</option>,  <option value="classKSpeechSink.html">kspeechsink</option>,  <option value="classKTextEditor_1_1BlockSelectionDCOPInterface.html">ktexteditor::blockselectiondcopinterface</option>,  <option value="classKTextEditor_1_1BlockSelectionInterface.html">ktexteditor::blockselectioninterface</option>,  <option value="classKTextEditor_1_1ClipboardDCOPInterface.html">ktexteditor::clipboarddcopinterface</option>,  <option value="classKTextEditor_1_1ClipboardInterface.html">ktexteditor::clipboardinterface</option>,  <option value="classKTextEditor_1_1CodeCompletionInterface.html">ktexteditor::codecompletioninterface</option>,  <option value="classKTextEditor_1_1CompletionEntry.html">ktexteditor::completionentry</option>,  <option value="classKTextEditor_1_1ConfigInterface.html">ktexteditor::configinterface</option>,  <option value="classKTextEditor_1_1ConfigInterfaceExtension.html">ktexteditor::configinterfaceextension</option>,  <option value="classKTextEditor_1_1ConfigPage.html">ktexteditor::configpage</option>,  <option value="classKTextEditor_1_1Cursor.html">ktexteditor::cursor</option>,  <option value="classKTextEditor_1_1CursorInterface.html">ktexteditor::cursorinterface</option>,  <option value="classKTextEditor_1_1Document.html">ktexteditor::document</option>,  <option value="classKTextEditor_1_1DocumentInfoDCOPInterface.html">ktexteditor::documentinfodcopinterface</option>,  <option value="classKTextEditor_1_1DocumentInfoInterface.html">ktexteditor::documentinfointerface</option>,  <option value="classKTextEditor_1_1DynWordWrapInterface.html">ktexteditor::dynwordwrapinterface</option>,  <option value="classKTextEditor_1_1EditDCOPInterface.html">ktexteditor::editdcopinterface</option>,  <option value="classKTextEditor_1_1EditInterface.html">ktexteditor::editinterface</option>,  <option value="classKTextEditor_1_1EditInterfaceExt.html">ktexteditor::editinterfaceext</option>,  <option value="classKTextEditor_1_1Editor.html">ktexteditor::editor</option>,  <option value="classKTextEditor_1_1EditorChooser.html">ktexteditor::editorchooser</option>,  <option value="classKTextEditor_1_1EncodingDCOPInterface.html">ktexteditor::encodingdcopinterface</option>,  <option value="classKTextEditor_1_1EncodingInterface.html">ktexteditor::encodinginterface</option>,  <option value="classKTextEditor_1_1HighlightingInterface.html">ktexteditor::highlightinginterface</option>,  <option value="classKTextEditor_1_1Mark.html">ktexteditor::mark</option>,  <option value="classKTextEditor_1_1MarkInterface.html">ktexteditor::markinterface</option>,  <option value="classKTextEditor_1_1MarkInterfaceExtension.html">ktexteditor::markinterfaceextension</option>,  <option value="classKTextEditor_1_1Plugin.html">ktexteditor::plugin</option>,  <option value="classKTextEditor_1_1PluginViewInterface.html">ktexteditor::pluginviewinterface</option>,  <option value="classKTextEditor_1_1PopupMenuInterface.html">ktexteditor::popupmenuinterface</option>,  <option value="classKTextEditor_1_1PrintDCOPInterface.html">ktexteditor::printdcopinterface</option>,  <option value="classKTextEditor_1_1PrintInterface.html">ktexteditor::printinterface</option>,  <option value="classKTextEditor_1_1SearchDCOPInterface.html">ktexteditor::searchdcopinterface</option>,  <option value="classKTextEditor_1_1SearchInterface.html">ktexteditor::searchinterface</option>,  <option value="classKTextEditor_1_1SelectionDCOPInterface.html">ktexteditor::selectiondcopinterface</option>,  <option value="classKTextEditor_1_1SelectionExtDCOPInterface.html">ktexteditor::selectionextdcopinterface</option>,  <option value="classKTextEditor_1_1SelectionInterface.html">ktexteditor::selectioninterface</option>,  <option value="classKTextEditor_1_1SelectionInterfaceExt.html">ktexteditor::selectioninterfaceext</option>,  <option value="classKTextEditor_1_1SessionConfigInterface.html">ktexteditor::sessionconfiginterface</option>,  <option value="classKTextEditor_1_1TemplateInterface.html">ktexteditor::templateinterface</option>,  <option value="classKTextEditor_1_1TextHintInterface.html">ktexteditor::texthintinterface</option>,  <option value="classKTextEditor_1_1UndoDCOPInterface.html">ktexteditor::undodcopinterface</option>,  <option value="classKTextEditor_1_1UndoInterface.html">ktexteditor::undointerface</option>,  <option value="classKTextEditor_1_1VariableInterface.html">ktexteditor::variableinterface</option>,  <option value="classKTextEditor_1_1View.html">ktexteditor::view</option>,  <option value="classKTextEditor_1_1ViewCursorDCOPInterface.html">ktexteditor::viewcursordcopinterface</option>,  <option value="classKTextEditor_1_1ViewCursorInterface.html">ktexteditor::viewcursorinterface</option>,  <option value="classKTextEditor_1_1ViewStatusMsgDCOPInterface.html">ktexteditor::viewstatusmsgdcopinterface</option>,  <option value="classKTextEditor_1_1ViewStatusMsgInterface.html">ktexteditor::viewstatusmsginterface</option>,  <option value="classKTextEditor_1_1WordWrapInterface.html">ktexteditor::wordwrapinterface</option>,  <option value="classScriptLoader.html">scriptloader</option>,  <option value="classShellScript.html">shellscript</option>,  <option value="classTerminalInterface.html">terminalinterface</option>,
</select>
</form>
</div>
-->
</div></div>
<div class="menu_box"><h2>API Dox</h2>
<div class="nav_list">
<ul>
<li><a href="../../arts/html/index.html">arts</a></li><li><a href="../../dcop/html/index.html">dcop</a></li><li><a href="../../dnssd/html/index.html">dnssd</a></li><li><a href="../../interfaces/html/index.html">interfaces</a></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<a href="../../interfaces/kimproxy/interface/html/index.html">interface</a></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<a href="../../interfaces/kimproxy/library/html/index.html">library</a></li><li>&nbsp;&nbsp;<a href="../../interfaces/kspeech/html/index.html">kspeech</a></li><li>&nbsp;&nbsp;<a href="../../interfaces/ktexteditor/html/index.html">ktexteditor</a></li><li><a href="../../kabc/html/index.html">kabc</a></li><li><a href="../../kate/html/index.html">kate</a></li><li><a href="../../kcmshell/html/index.html">kcmshell</a></li><li><a href="../../kdecore/html/index.html">kdecore</a></li><li><a href="../../kded/html/index.html">kded</a></li><li><a href="../../kdefx/html/index.html">kdefx</a></li><li><a href="../../kdeprint/html/index.html">kdeprint</a></li><li><a href="../../kdesu/html/index.html">kdesu</a></li><li><a href="../../kdeui/html/index.html">kdeui</a></li><li><a href="../../kdoctools/html/index.html">kdoctools</a></li><li><a href="../../khtml/html/index.html">khtml</a></li><li><a href="../../kimgio/html/index.html">kimgio</a></li><li><a href="../../kinit/html/index.html">kinit</a></li><li><a href="../../kio/html/index.html">kio</a></li><li>&nbsp;&nbsp;<a href="../../kio/bookmarks/html/index.html">bookmarks</a></li><li>&nbsp;&nbsp;<a href="../../kio/httpfilter/html/index.html">httpfilter</a></li><li>&nbsp;&nbsp;<a href="../../kio/kfile/html/index.html">kfile</a></li><li>&nbsp;&nbsp;<a href="../../kio/kio/html/index.html">kio</a></li><li>&nbsp;&nbsp;<a href="../../kio/kioexec/html/index.html">kioexec</a></li><li>&nbsp;&nbsp;<a href="../../kio/kpasswdserver/html/index.html">kpasswdserver</a></li><li>&nbsp;&nbsp;<a href="../../kio/kssl/html/index.html">kssl</a></li><li><a href="../../kioslave/html/index.html">kioslave</a></li><li>&nbsp;&nbsp;<a href="../../kioslave/http/html/index.html">http</a></li><li><a href="../../kjs/html/index.html">kjs</a></li><li><a href="../../kmdi/html/index.html">kmdi</a></li><li>&nbsp;&nbsp;<a href="../../kmdi/kmdi/html/index.html">kmdi</a></li><li><a href="../../knewstuff/html/index.html">knewstuff</a></li><li><a href="../../kparts/html/index.html">kparts</a></li><li><a href="../../kresources/html/index.html">kresources</a></li><li><a href="../../kspell2/html/index.html">kspell2</a></li><li><a href="../../kunittest/html/index.html">kunittest</a></li><li><a href="../../kutils/html/index.html">kutils</a></li><li><a href="../../kwallet/html/index.html">kwallet</a></li><li><a href="../../libkmid/html/index.html">libkmid</a></li><li><a href="../../libkscreensaver/html/index.html">libkscreensaver</a></li>
</ul></div></div>


        </td>
</tr>
</table>

<span class="doNotDisplay">
  <a href="http://www.kde.org/" accesskey="8">KDE Home</a> |
  <a href="http://accessibility.kde.org/" accesskey="9">KDE Accessibility Home</a> |
  <a href="http://www.kde.org/media/accesskeys.php" accesskey="0">Description of Access Keys</a>
</span>


<div style="height: 8px"></div>

<div id="footer">
  <div id="footer_left">
    Maintained by <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;groo&#116;&#64;kde&#46;or&#x67;">Adriaan de Groot</a>
and
<a href="&#109;a&#105;&#108;&#116;&#111;&#58;w&#105;nter&#116;&#64;kde&#46;or&#x67">Allen Winter</a>.
<br/>
    KDE and K Desktop Environment are trademarks of <a href="http://www.kde.org/areas/kde-ev/" title="Homepage of the KDE non-profit Organization">KDE e.V.</a> |
    <a href="http://www.kde.org/contact/impressum.php">Legal</a>
  </div>
  <div id="footer_right"><img src="/media/images/footer_right.png" style="margin: 0px" alt="" /></div>
</div>

<!--
WARNING: DO NOT SEND MAIL TO THE FOLLOWING EMAIL ADDRESS! YOU WILL
BE BLOCKED INSTANTLY AND PERMANENTLY!
<a href="mailto:aaaatrap-425acc3b5374943f@kde.org">Block me</a>
WARNING END
-->

</body>
</html>