diff options
Diffstat (limited to 'src/libcommuni/doc')
| -rw-r--r-- | src/libcommuni/doc/bot.dox | 99 | ||||
| -rw-r--r-- | src/libcommuni/doc/bot.png | bin | 0 -> 13985 bytes | |||
| -rw-r--r-- | src/libcommuni/doc/client.dox | 67 | ||||
| -rw-r--r-- | src/libcommuni/doc/client.png | bin | 0 -> 70323 bytes | |||
| -rw-r--r-- | src/libcommuni/doc/communi.png | bin | 0 -> 4612 bytes | |||
| -rw-r--r-- | src/libcommuni/doc/debugging.dox | 45 | ||||
| -rw-r--r-- | src/libcommuni/doc/doc.pri | 20 | ||||
| -rw-r--r-- | src/libcommuni/doc/enums.dox | 1957 | ||||
| -rw-r--r-- | src/libcommuni/doc/header.html | 55 | ||||
| -rw-r--r-- | src/libcommuni/doc/mainpage.dox | 54 | ||||
| -rw-r--r-- | src/libcommuni/doc/minimal.dox | 46 | ||||
| -rw-r--r-- | src/libcommuni/doc/modules.dox | 85 | ||||
| -rw-r--r-- | src/libcommuni/doc/qml.dox | 160 | ||||
| -rw-r--r-- | src/libcommuni/doc/qmlbot.dox | 71 | ||||
| -rw-r--r-- | src/libcommuni/doc/qmlbot.png | bin | 0 -> 4804 bytes | |||
| -rw-r--r-- | src/libcommuni/doc/quick.dox | 91 | ||||
| -rw-r--r-- | src/libcommuni/doc/quick.png | bin | 0 -> 110519 bytes | |||
| -rw-r--r-- | src/libcommuni/doc/usage.dox | 81 |
18 files changed, 2831 insertions, 0 deletions
diff --git a/src/libcommuni/doc/bot.dox b/src/libcommuni/doc/bot.dox new file mode 100644 index 0000000..8f28ee7 --- /dev/null +++ b/src/libcommuni/doc/bot.dox @@ -0,0 +1,99 @@ +/* + Copyright (C) 2008-2014 The Communi Project + + You may use this file under the terms of BSD license as follows: + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/*! + \page bot Bot example + + The example presents a simple IRC bot that can handle half a dozen commands. + This article focuses on handling messages, and parsing and sending commands. + See the \ref minimal "Minimal example" for basics on setting up an IRC + connection. + + \image html bot.png "The bot example in action" + + The bot uses IrcCommandParser for parsing commands from messages received + from other clients. In order to take it in use, the desired commands must + be first introduced. + + \snippet bot/ircbot.cpp commands + + Some of the commands are context sensitive. Thus, the parser must know + the list of channels the bot is on. This is easily achieved with help of + IrcBufferModel. + + \snippet bot/ircbot.cpp channels + + Furthermore, the current target of the parser is later updated whenever + messages are received and parsed for commands. + + In order for the bot to be able to process private and channel + messages, it connects to the \ref IrcConnection::messageReceived() + "IrcConnection::privateMessageReceived()" signal. + + \snippet bot/ircbot.cpp messages + + The current target of the parser, and command triggers are chosen depending + on whether the received message is a channel or private message. The next + snippet illustrates how the logic of the bot has been implemented using + IrcCommandParser. + + \snippet bot/ircbot.cpp receive + + Notice how the help command is implemented as a "custom" command. This is + because it does not correspond to any actual IRC command, but we want the + bot to reply with a help message instead of performing an actual command. + + Finally, the last snippet shows the bot in action! + + \code + [17:42:44] ! CommuniBot172375 (~communi@12.34.56.78) joined #communi + [17:42:59] <jpnurmi> !say Communi rocks! + [17:42:59] <CommuniBot172375> Communi rocks! + [17:44:05] <jpnurmi> CommuniBot172375: nick CommuniRocks + [17:44:05] ! CommuniBot172375 changed nick to CommuniRocks + [17:44:18] <jpnurmi> CommuniRocks: quit + [17:44:19] ! CommuniRocks (~communi@12.34.56.78) has quit (Client Quit) + \endcode + + Files: + \li \ref examples/bot/main.cpp + \li \ref examples/bot/ircbot.h + \li \ref examples/bot/ircbot.cpp + + \file examples/bot/main.cpp + \brief \ref bot + \include examples/bot/main.cpp + + \file examples/bot/ircbot.h + \brief \ref bot + \include examples/bot/ircbot.h + + \file examples/bot/ircbot.cpp + \brief \ref bot + \include examples/bot/ircbot.cpp + */ diff --git a/src/libcommuni/doc/bot.png b/src/libcommuni/doc/bot.png Binary files differnew file mode 100644 index 0000000..eed773b --- /dev/null +++ b/src/libcommuni/doc/bot.png diff --git a/src/libcommuni/doc/client.dox b/src/libcommuni/doc/client.dox new file mode 100644 index 0000000..f23e57f --- /dev/null +++ b/src/libcommuni/doc/client.dox @@ -0,0 +1,67 @@ +/* + Copyright (C) 2008-2014 The Communi Project + + You may use this file under the terms of BSD license as follows: + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/*! + \page client Client example + + The example illustrates how to create a simple GUI client. See \ref minimal + and \ref bot for getting familiar with the core concepts of Communi. + + \image html client.png "The client example in action" + + If you're curious what the example does behind the scenes, try setting an + environment variable \c IRC_DEBUG=1 in order to enable verbose debug output + as explained in \ref debugging. + + Files: + \li \ref examples/client/main.cpp + \li \ref examples/client/ircclient.h + \li \ref examples/client/ircclient.cpp + \li \ref examples/client/ircmessageformatter.h + \li \ref examples/client/ircmessageformatter.cpp + + \file examples/client/main.cpp + \brief \ref client + \include examples/client/main.cpp + + \file examples/client/ircclient.h + \brief \ref client + \include examples/client/ircclient.h + + \file examples/client/ircclient.cpp + \brief \ref client + \include examples/client/ircclient.cpp + + \file examples/client/ircmessageformatter.h + \brief \ref client + \include examples/client/ircmessageformatter.h + + \file examples/client/ircmessageformatter.cpp + \brief \ref client + \include examples/client/ircmessageformatter.cpp + */ diff --git a/src/libcommuni/doc/client.png b/src/libcommuni/doc/client.png Binary files differnew file mode 100644 index 0000000..43308ab --- /dev/null +++ b/src/libcommuni/doc/client.png diff --git a/src/libcommuni/doc/communi.png b/src/libcommuni/doc/communi.png Binary files differnew file mode 100644 index 0000000..ad02367 --- /dev/null +++ b/src/libcommuni/doc/communi.png diff --git a/src/libcommuni/doc/debugging.dox b/src/libcommuni/doc/debugging.dox new file mode 100644 index 0000000..8edb5bf --- /dev/null +++ b/src/libcommuni/doc/debugging.dox @@ -0,0 +1,45 @@ +/* + Copyright (C) 2008-2014 The Communi Project + + You may use this file under the terms of BSD license as follows: + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/*! + \page debugging Debugging techniques + + Communi recognizes the following environment variables at runtime: + + <table> + <tr> + <th>Variable</th> + <th>Description</th> + </tr> + <tr> + <td>IRC_DEBUG</td> + <td>Set to a non-zero value to make Communi print out connection status + changes and all activity including the received messages and sent commands.</td> + </tr> + </table> + */ diff --git a/src/libcommuni/doc/doc.pri b/src/libcommuni/doc/doc.pri new file mode 100644 index 0000000..055b5c9 --- /dev/null +++ b/src/libcommuni/doc/doc.pri @@ -0,0 +1,20 @@ +###################################################################### +# Communi +###################################################################### + +OTHER_FILES += $$PWD/bot.dox +OTHER_FILES += $$PWD/client.dox +OTHER_FILES += $$PWD/communi.png +OTHER_FILES += $$PWD/debugging.dox +OTHER_FILES += $$PWD/enums.dox +OTHER_FILES += $$PWD/mainpage.dox +OTHER_FILES += $$PWD/minimal.dox +OTHER_FILES += $$PWD/modules.dox +OTHER_FILES += $$PWD/qml.dox +OTHER_FILES += $$PWD/qmlbot.dox +OTHER_FILES += $$PWD/usage.dox + +isEqual(_PRO_FILE_PWD_, $$OUT_PWD) { + docs.commands += QT_INSTALL_DOCS=$$[QT_INSTALL_DOCS] doxygen + QMAKE_EXTRA_TARGETS += docs +} diff --git a/src/libcommuni/doc/enums.dox b/src/libcommuni/doc/enums.dox new file mode 100644 index 0000000..0cbe240 --- /dev/null +++ b/src/libcommuni/doc/enums.dox @@ -0,0 +1,1957 @@ +/* + Copyright (C) 2008-2014 The Communi Project + + You may use this file under the terms of BSD license as follows: + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/*! + \enum Irc::Color + This enum describes the (m)IRC colors. + + The default values are + <a href="http://www.w3.org/TR/SVG/types.html#ColorKeywords">SVG color keyword names</a> + provided by the World Wide Web Consortium + + \sa IrcPalette + */ + +/*! + \var Irc::White + \brief The default value is \c "white" + */ + +/*! + \var Irc::Black + \brief The default value is \c "black" + */ + +/*! + \var Irc::Blue + \brief The default value is \c "blue" + */ + +/*! + \var Irc::Green + \brief The default value is \c "green" + */ + +/*! + \var Irc::Red + \brief The default value is \c "red" + */ + +/*! + \var Irc::Brown + \brief The default value is \c "brown" + */ + +/*! + \var Irc::Purple + \brief The default value is \c "purple" + */ + +/*! + \var Irc::Orange + \brief The default value is \c "orange" + */ + +/*! + \var Irc::Yellow + \brief The default value is \c "yellow" + */ + +/*! + \var Irc::LightGreen + \brief The default value is \c "lightgreen" + */ + +/*! + \var Irc::Cyan + \brief The default value is \c "cyan" + */ + +/*! + \var Irc::LightCyan + \brief The default value is \c "lightcyan" + */ + +/*! + \var Irc::LightBlue + \brief The default value is \c "lightblue" + */ + +/*! + \var Irc::Pink + \brief The default value is \c "pink" + */ + +/*! + \var Irc::Gray + \brief The default value is \c "gray" + */ + +/*! + \var Irc::LightGray + \brief The default value is \c "lightgray" + */ + +/*! + \enum Irc::SortMethod + This enum describes the available model sort methods. + + \sa IrcBufferModel, IrcUserModel + */ + +/*! + \var Irc::SortByHand + \brief Sort by hand by calling sort() + */ + +/*! + \var Irc::SortByName + \brief Sort by name (Irc::NameRole) + */ + +/*! + \var Irc::SortByTitle + \brief Sort by title (Irc::TitleRole) + */ + +/*! + \var Irc::SortByActivity + \brief Sort by activity + */ + +/*! + \enum Irc::Code + + The command responses and error replies as defined in + <a href="http://tools.ietf.org/html/rfc1459">RFC 1459</a>, + <a href="http://tools.ietf.org/html/rfc2812">RFC 2812</a>, + and various <a href="http://www.alien.net.au/irc/irc2numerics.html">IRCd specific extensions</a>. + */ + +/*! + \var Irc::RPL_WELCOME + \brief 1 + */ +/*! + \var Irc::RPL_YOURHOST + \brief 2 + */ +/*! + \var Irc::RPL_CREATED + \brief 3 + */ +/*! + \var Irc::RPL_MYINFO + \brief 4 + */ +/*! + \var Irc::RPL_ISUPPORT + \brief 5 + */ +/*! + \var Irc::RPL_SNOMASK + \brief 8 + */ +/*! + \var Irc::RPL_STATMEMTOT + \brief 9 + */ +/*! + \var Irc::RPL_BOUNCE + \brief 10 + */ +/*! + \var Irc::RPL_STATMEM + \brief 10 + */ +/*! + \var Irc::RPL_YOURCOOKIE + \brief 14 + */ +/*! + \var Irc::RPL_YOURID + \brief 42 + */ +/*! + \var Irc::RPL_SAVENICK + \brief 43 + */ +/*! + \var Irc::RPL_ATTEMPTINGJUNC + \brief 50 + */ +/*! + \var Irc::RPL_ATTEMPTINGREROUTE + \brief 51 + */ +/*! + \var Irc::RPL_TRACELINK + \brief 200 + */ +/*! + \var Irc::RPL_TRACECONNECTING + \brief 201 + */ +/*! + \var Irc::RPL_TRACEHANDSHAKE + \brief 202 + */ +/*! + \var Irc::RPL_TRACEUNKNOWN + \brief 203 + */ +/*! + \var Irc::RPL_TRACEOPERATOR + \brief 204 + */ +/*! + \var Irc::RPL_TRACEUSER + \brief 205 + */ +/*! + \var Irc::RPL_TRACESERVER + \brief 206 + */ +/*! + \var Irc::RPL_TRACESERVICE + \brief 207 + */ +/*! + \var Irc::RPL_TRACENEWTYPE + \brief 208 + */ +/*! + \var Irc::RPL_TRACECLASS + \brief 209 + */ +/*! + \var Irc::RPL_TRACERECONNECT + \brief 210 + */ +/*! + \var Irc::RPL_STATS + \brief 210 + */ +/*! + \var Irc::RPL_STATSLINKINFO + \brief 211 + */ +/*! + \var Irc::RPL_STATSCOMMANDS + \brief 212 + */ +/*! + \var Irc::RPL_STATSCLINE + \brief 213 + */ +/*! + \var Irc::RPL_STATSNLINE + \brief 214 + */ +/*! + \var Irc::RPL_STATSILINE + \brief 215 + */ +/*! + \var Irc::RPL_STATSKLINE + \brief 216 + */ +/*! + \var Irc::RPL_STATSQLINE + \brief 217 + */ +/*! + \var Irc::RPL_STATSYLINE + \brief 218 + */ +/*! + \var Irc::RPL_ENDOFSTATS + \brief 219 + */ +/*! + \var Irc::RPL_UMODEIS + \brief 221 + */ +/*! + \var Irc::RPL_MODLIST + \brief 222 + */ +/*! + \var Irc::RPL_SQLINE_NICK + \brief 222 + */ +/*! + \var Irc::RPL_STATSZLINE + \brief 225 + */ +/*! + \var Irc::RPL_STATSCOUNT + \brief 226 + */ +/*! + \var Irc::RPL_SERVICEINFO + \brief 231 + */ +/*! + \var Irc::RPL_ENDOFSERVICES + \brief 232 + */ +/*! + \var Irc::RPL_SERVICE + \brief 233 + */ +/*! + \var Irc::RPL_SERVLIST + \brief 234 + */ +/*! + \var Irc::RPL_SERVLISTEND + \brief 235 + */ +/*! + \var Irc::RPL_STATSVERBOSE + \brief 236 + */ +/*! + \var Irc::RPL_STATSENGINE + \brief 237 + */ +/*! + \var Irc::RPL_STATSIAUTH + \brief 239 + */ +/*! + \var Irc::RPL_STATSVLINE + \brief 240 + */ +/*! + \var Irc::RPL_STATSLLINE + \brief 241 + */ +/*! + \var Irc::RPL_STATSUPTIME + \brief 242 + */ +/*! + \var Irc::RPL_STATSOLINE + \brief 243 + */ +/*! + \var Irc::RPL_STATSHLINE + \brief 244 + */ +/*! + \var Irc::RPL_STATSSLINE + \brief 245 + */ +/*! + \var Irc::RPL_STATSPING + \brief 246 + */ +/*! + \var Irc::RPL_STATSBLINE + \brief 247 + */ +/*! + \var Irc::RPL_STATSDEFINE + \brief 248 + */ +/*! + \var Irc::RPL_STATSDEBUG + \brief 249 + */ +/*! + \var Irc::RPL_STATSDLINE + \brief 250 + */ +/*! + \var Irc::RPL_STATSCONN + \brief 250 + */ +/*! + \var Irc::RPL_LUSERCLIENT + \brief 251 + */ +/*! + \var Irc::RPL_LUSEROP + \brief 252 + */ +/*! + \var Irc::RPL_LUSERUNKNOWN + \brief 253 + */ +/*! + \var Irc::RPL_LUSERCHANNELS + \brief 254 + */ +/*! + \var Irc::RPL_LUSERME + \brief 255 + */ +/*! + \var Irc::RPL_ADMINME + \brief 256 + */ +/*! + \var Irc::RPL_ADMINLOC1 + \brief 257 + */ +/*! + \var Irc::RPL_ADMINLOC2 + \brief 258 + */ +/*! + \var Irc::RPL_ADMINEMAIL + \brief 259 + */ +/*! + \var Irc::RPL_TRACELOG + \brief 261 + */ +/*! + \var Irc::RPL_TRACEPING + \brief 262 + */ +/*! + \var Irc::RPL_TRACEEND + \brief 262 + */ +/*! + \var Irc::RPL_TRYAGAIN + \brief 263 + */ +/*! + \var Irc::RPL_LOCALUSERS + \brief 265 + */ +/*! + \var Irc::RPL_GLOBALUSERS + \brief 266 + */ +/*! + \var Irc::RPL_START_NETSTAT + \brief 267 + */ +/*! + \var Irc::RPL_NETSTAT + \brief 268 + */ +/*! + \var Irc::RPL_END_NETSTAT + \brief 269 + */ +/*! + \var Irc::RPL_PRIVS + \brief 270 + */ +/*! + \var Irc::RPL_SILELIST + \brief 271 + */ +/*! + \var Irc::RPL_ENDOFSILELIST + \brief 272 + */ +/*! + \var Irc::RPL_NOTIFY + \brief 273 + */ +/*! + \var Irc::RPL_ENDNOTIFY + \brief 274 + */ +/*! + \var Irc::RPL_STATSDELTA + \brief 274 + */ +/*! + \var Irc::RPL_VCHANEXIST + \brief 276 + */ +/*! + \var Irc::RPL_VCHANLIST + \brief 277 + */ +/*! + \var Irc::RPL_VCHANHELP + \brief 278 + */ +/*! + \var Irc::RPL_GLIST + \brief 280 + */ +/*! + \var Irc::RPL_ENDOFGLIST + \brief 281 + */ +/*! + \var Irc::RPL_ACCEPTLIST + \brief 281 + */ +/*! + \var Irc::RPL_ENDOFACCEPT + \brief 282 + */ +/*! + \var Irc::RPL_JUPELIST + \brief 282 + */ +/*! + \var Irc::RPL_ENDOFJUPELIST + \brief 283 + */ +/*! + \var Irc::RPL_FEATURE + \brief 284 + */ +/*! + \var Irc::RPL_GLIST_HASH + \brief 285 + */ +/*! + \var Irc::RPL_CHANINFO_HANDLE + \brief 285 + */ +/*! + \var Irc::RPL_NEWHOSTIS + \brief 285 + */ +/*! + \var Irc::RPL_CHANINFO_USERS + \brief 286 + */ +/*! + \var Irc::RPL_CHKHEAD + \brief 286 + */ +/*! + \var Irc::RPL_CHANINFO_CHOPS + \brief 287 + */ +/*! + \var Irc::RPL_CHANUSER + \brief 287 + */ +/*! + \var Irc::RPL_CHANINFO_VOICES + \brief 288 + */ +/*! + \var Irc::RPL_PATCHHEAD + \brief 288 + */ +/*! + \var Irc::RPL_CHANINFO_AWAY + \brief 289 + */ +/*! + \var Irc::RPL_PATCHCON + \brief 289 + */ +/*! + \var Irc::RPL_CHANINFO_OPERS + \brief 290 + */ +/*! + \var Irc::RPL_HELPHDR + \brief 290 + */ +/*! + \var Irc::RPL_DATASTR + \brief 290 + */ +/*! + \var Irc::RPL_CHANINFO_BANNED + \brief 291 + */ +/*! + \var Irc::RPL_HELPOP + \brief 291 + */ +/*! + \var Irc::RPL_ENDOFCHECK + \brief 291 + */ +/*! + \var Irc::RPL_CHANINFO_BANS + \brief 292 + */ +/*! + \var Irc::RPL_HELPTLR + \brief 292 + */ +/*! + \var Irc::RPL_CHANINFO_INVITE + \brief 293 + */ +/*! + \var Irc::RPL_HELPHLP + \brief 293 + */ +/*! + \var Irc::RPL_CHANINFO_INVITES + \brief 294 + */ +/*! + \var Irc::RPL_HELPFWD + \brief 294 + */ +/*! + \var Irc::RPL_CHANINFO_KICK + \brief 295 + */ +/*! + \var Irc::RPL_HELPIGN + \brief 295 + */ +/*! + \var Irc::RPL_CHANINFO_KICKS + \brief 296 + */ +/*! + \var Irc::RPL_END_CHANINFO + \brief 299 + */ +/*! + \var Irc::RPL_NONE + \brief 300 + */ +/*! + \var Irc::RPL_AWAY + \brief 301 + */ +/*! + \var Irc::RPL_USERHOST + \brief 302 + */ +/*! + \var Irc::RPL_ISON + \brief 303 + */ +/*! + \var Irc::RPL_TEXT + \brief 304 + */ +/*! + \var Irc::RPL_UNAWAY + \brief 305 + */ +/*! + \var Irc::RPL_NOWAWAY + \brief 306 + */ +/*! + \var Irc::RPL_WHOISREGNICK + \brief 307 + */ +/*! + \var Irc::RPL_SUSERHOST + \brief 307 + */ +/*! + \var Irc::RPL_NOTIFYACTION + \brief 308 + */ +/*! + \var Irc::RPL_WHOISADMIN + \brief 308 + */ +/*! + \var Irc::RPL_NICKTRACE + \brief 309 + */ +/*! + \var Irc::RPL_WHOISSADMIN + \brief 309 + */ +/*! + \var Irc::RPL_WHOISHELPER + \brief 309 + */ +/*! + \var Irc::RPL_WHOISSVCMSG + \brief 310 + */ +/*! + \var Irc::RPL_WHOISHELPOP + \brief 310 + */ +/*! + \var Irc::RPL_WHOISSERVICE + \brief 310 + */ +/*! + \var Irc::RPL_WHOISUSER + \brief 311 + */ +/*! + \var Irc::RPL_WHOISSERVER + \brief 312 + */ +/*! + \var Irc::RPL_WHOISOPERATOR + \brief 313 + */ +/*! + \var Irc::RPL_WHOWASUSER + \brief 314 + */ +/*! + \var Irc::RPL_ENDOFWHO + \brief 315 + */ +/*! + \var Irc::RPL_WHOISCHANOP + \brief 316 + */ +/*! + \var Irc::RPL_WHOISIDLE + \brief 317 + */ +/*! + \var Irc::RPL_ENDOFWHOIS + \brief 318 + */ +/*! + \var Irc::RPL_WHOISCHANNELS + \brief 319 + */ +/*! + \var Irc::RPL_WHOISVIRT + \brief 320 + */ +/*! + \var Irc::RPL_WHOIS_HIDDEN + \brief 320 + */ +/*! + \var Irc::RPL_WHOISSPECIAL + \brief 320 + */ +/*! + \var Irc::RPL_LISTSTART + \brief 321 + */ +/*! + \var Irc::RPL_LIST + \brief 322 + */ +/*! + \var Irc::RPL_LISTEND + \brief 323 + */ +/*! + \var Irc::RPL_CHANNELMODEIS + \brief 324 + */ +/*! + \var Irc::RPL_UNIQOPIS + \brief 325 + */ +/*! + \var Irc::RPL_CHANNELPASSIS + \brief 325 + */ +/*! + \var Irc::RPL_NOCHANPASS + \brief 326 + */ +/*! + \var Irc::RPL_CHPASSUNKNOWN + \brief 327 + */ +/*! + \var Irc::RPL_CHANNEL_URL + \brief 328 + */ +/*! + \var Irc::RPL_CREATIONTIME + \brief 329 + */ +/*! + \var Irc::RPL_WHOWAS_TIME + \brief 330 + */ +/*! + \var Irc::RPL_WHOISACCOUNT + \brief 330 + */ +/*! + \var Irc::RPL_NOTOPIC + \brief 331 + */ +/*! + \var Irc::RPL_TOPIC + \brief 332 + */ +/*! + \var Irc::RPL_TOPICWHOTIME + \brief 333 + */ +/*! + \var Irc::RPL_LISTUSAGE + \brief 334 + */ +/*! + \var Irc::RPL_COMMANDSYNTAX + \brief 334 + */ +/*! + \var Irc::RPL_LISTSYNTAX + \brief 334 + */ +/*! + \var Irc::RPL_CHANPASSOK + \brief 338 + */ +/*! + \var Irc::RPL_WHOISACTUALLY + \brief 338 + */ +/*! + \var Irc::RPL_BADCHANPASS + \brief 339 + */ +/*! + \var Irc::RPL_INVITING + \brief 341 + */ +/*! + \var Irc::RPL_SUMMONING + \brief 342 + */ +/*! + \var Irc::RPL_INVITED + \brief 345 + */ +/*! + \var Irc::RPL_INVITELIST + \brief 346 + */ +/*! + \var Irc::RPL_ENDOFINVITELIST + \brief 347 + */ +/*! + \var Irc::RPL_EXCEPTLIST + \brief 348 + */ +/*! + \var Irc::RPL_ENDOFEXCEPTLIST + \brief 349 + */ +/*! + \var Irc::RPL_VERSION + \brief 351 + */ +/*! + \var Irc::RPL_WHOREPLY + \brief 352 + */ +/*! + \var Irc::RPL_NAMREPLY + \brief 353 + */ +/*! + \var Irc::RPL_WHOSPCRPL + \brief 354 + */ +/*! + \var Irc::RPL_NAMREPLY_ + \brief 355 + */ +/*! + \var Irc::RPL_KILLDONE + \brief 361 + */ +/*! + \var Irc::RPL_CLOSING + \brief 362 + */ +/*! + \var Irc::RPL_CLOSEEND + \brief 363 + */ +/*! + \var Irc::RPL_LINKS + \brief 364 + */ +/*! + \var Irc::RPL_ENDOFLINKS + \brief 365 + */ +/*! + \var Irc::RPL_ENDOFNAMES + \brief 366 + */ +/*! + \var Irc::RPL_BANLIST + \brief 367 + */ +/*! + \var Irc::RPL_ENDOFBANLIST + \brief 368 + */ +/*! + \var Irc::RPL_ENDOFWHOWAS + \brief 369 + */ +/*! + \var Irc::RPL_INFO + \brief 371 + */ +/*! + \var Irc::RPL_MOTD + \brief 372 + */ +/*! + \var Irc::RPL_INFOSTART + \brief 373 + */ +/*! + \var Irc::RPL_ENDOFINFO + \brief 374 + */ +/*! + \var Irc::RPL_MOTDSTART + \brief 375 + */ +/*! + \var Irc::RPL_ENDOFMOTD + \brief 376 + */ +/*! + \var Irc::RPL_KICKEXPIRED + \brief 377 + */ +/*! + \var Irc::RPL_SPAM + \brief 377 + */ +/*! + \var Irc::RPL_BANEXPIRED + \brief 378 + */ +/*! + \var Irc::RPL_WHOISHOST + \brief 378 + */ +/*! + \var Irc::RPL_KICKLINKED + \brief 379 + */ +/*! + \var Irc::RPL_WHOISMODES + \brief 379 + */ +/*! + \var Irc::RPL_BANLINKED + \brief 380 + */ +/*! + \var Irc::RPL_YOURHELPER + \brief 380 + */ +/*! + \var Irc::RPL_YOUREOPER + \brief 381 + */ +/*! + \var Irc::RPL_REHASHING + \brief 382 + */ +/*! + \var Irc::RPL_YOURESERVICE + \brief 383 + */ +/*! + \var Irc::RPL_MYPORTIS + \brief 384 + */ +/*! + \var Irc::RPL_NOTOPERANYMORE + \brief 385 + */ +/*! + \var Irc::RPL_QLIST + \brief 386 + */ +/*! + \var Irc::RPL_IRCOPS + \brief 386 + */ +/*! + \var Irc::RPL_ENDOFQLIST + \brief 387 + */ +/*! + \var Irc::RPL_ENDOFIRCOPS + \brief 387 + */ +/*! + \var Irc::RPL_ALIST + \brief 388 + */ +/*! + \var Irc::RPL_ENDOFALIST + \brief 389 + */ +/*! + \var Irc::RPL_TIME + \brief 391 + */ +/*! + \var Irc::RPL_USERSSTART + \brief 392 + */ +/*! + \var Irc::RPL_USERS + \brief 393 + */ +/*! + \var Irc::RPL_ENDOFUSERS + \brief 394 + */ +/*! + \var Irc::RPL_NOUSERS + \brief 395 + */ +/*! + \var Irc::RPL_HOSTHIDDEN + \brief 396 + */ +/*! + \var Irc::ERR_UNKNOWNERROR + \brief 400 + */ +/*! + \var Irc::ERR_NOSUCHNICK + \brief 401 + */ +/*! + \var Irc::ERR_NOSUCHSERVER + \brief 402 + */ +/*! + \var Irc::ERR_NOSUCHCHANNEL + \brief 403 + */ +/*! + \var Irc::ERR_CANNOTSENDTOCHAN + \brief 404 + */ +/*! + \var Irc::ERR_TOOMANYCHANNELS + \brief 405 + */ +/*! + \var Irc::ERR_WASNOSUCHNICK + \brief 406 + */ +/*! + \var Irc::ERR_TOOMANYTARGETS + \brief 407 + */ +/*! + \var Irc::ERR_NOSUCHSERVICE + \brief 408 + */ +/*! + \var Irc::ERR_NOCOLORSONCHAN + \brief 408 + */ +/*! + \var Irc::ERR_NOORIGIN + \brief 409 + */ +/*! + \var Irc::ERR_NORECIPIENT + \brief 411 + */ +/*! + \var Irc::ERR_NOTEXTTOSEND + \brief 412 + */ +/*! + \var Irc::ERR_NOTOPLEVEL + \brief 413 + */ +/*! + \var Irc::ERR_WILDTOPLEVEL + \brief 414 + */ +/*! + \var Irc::ERR_BADMASK + \brief 415 + */ +/*! + \var Irc::ERR_TOOMANYMATCHES + \brief 416 + */ +/*! + \var Irc::ERR_QUERYTOOLONG + \brief 416 + */ +/*! + \var Irc::ERR_LENGTHTRUNCATED + \brief 419 + */ +/*! + \var Irc::ERR_UNKNOWNCOMMAND + \brief 421 + */ +/*! + \var Irc::ERR_NOMOTD + \brief 422 + */ +/*! + \var Irc::ERR_NOADMININFO + \brief 423 + */ +/*! + \var Irc::ERR_FILEERROR + \brief 424 + */ +/*! + \var Irc::ERR_NOOPERMOTD + \brief 425 + */ +/*! + \var Irc::ERR_TOOMANYAWAY + \brief 429 + */ +/*! + \var Irc::ERR_EVENTNICKCHANGE + \brief 430 + */ +/*! + \var Irc::ERR_NONICKNAMEGIVEN + \brief 431 + */ +/*! + \var Irc::ERR_ERRONEUSNICKNAME + \brief 432 + */ +/*! + \var Irc::ERR_NICKNAMEINUSE + \brief 433 + */ +/*! + \var Irc::ERR_SERVICENAMEINUSE + \brief 434 + */ +/*! + \var Irc::ERR_NORULES + \brief 434 + */ +/*! + \var Irc::ERR_SERVICECONFUSED + \brief 435 + */ +/*! + \var Irc::ERR_BANONCHAN + \brief 435 + */ +/*! + \var Irc::ERR_NICKCOLLISION + \brief 436 + */ +/*! + \var Irc::ERR_UNAVAILRESOURCE + \brief 437 + */ +/*! + \var Irc::ERR_BANNICKCHANGE + \brief 437 + */ +/*! + \var Irc::ERR_NICKTOOFAST + \brief 438 + */ +/*! + \var Irc::ERR_DEAD + \brief 438 + */ +/*! + \var Irc::ERR_TARGETTOOFAST + \brief 439 + */ +/*! + \var Irc::ERR_SERVICESDOWN + \brief 440 + */ +/*! + \var Irc::ERR_USERNOTINCHANNEL + \brief 441 + */ +/*! + \var Irc::ERR_NOTONCHANNEL + \brief 442 + */ +/*! + \var Irc::ERR_USERONCHANNEL + \brief 443 + */ +/*! + \var Irc::ERR_NOLOGIN + \brief 444 + */ +/*! + \var Irc::ERR_SUMMONDISABLED + \brief 445 + */ +/*! + \var Irc::ERR_USERSDISABLED + \brief 446 + */ +/*! + \var Irc::ERR_NONICKCHANGE + \brief 447 + */ +/*! + \var Irc::ERR_NOTIMPLEMENTED + \brief 449 + */ +/*! + \var Irc::ERR_NOTREGISTERED + \brief 451 + */ +/*! + \var Irc::ERR_IDCOLLISION + \brief 452 + */ +/*! + \var Irc::ERR_NICKLOST + \brief 453 + */ +/*! + \var Irc::ERR_HOSTILENAME + \brief 455 + */ +/*! + \var Irc::ERR_ACCEPTFULL + \brief 456 + */ +/*! + \var Irc::ERR_ACCEPTEXIST + \brief 457 + */ +/*! + \var Irc::ERR_ACCEPTNOT + \brief 458 + */ +/*! + \var Irc::ERR_NOHIDING + \brief 459 + */ +/*! + \var Irc::ERR_NOTFORHALFOPS + \brief 460 + */ +/*! + \var Irc::ERR_NEEDMOREPARAMS + \brief 461 + */ +/*! + \var Irc::ERR_ALREADYREGISTERED + \brief 462 + */ +/*! + \var Irc::ERR_NOPERMFORHOST + \brief 463 + */ +/*! + \var Irc::ERR_PASSWDMISMATCH + \brief 464 + */ +/*! + \var Irc::ERR_YOUREBANNEDCREEP + \brief 465 + */ +/*! + \var Irc::ERR_YOUWILLBEBANNED + \brief 466 + */ +/*! + \var Irc::ERR_KEYSET + \brief 467 + */ +/*! + \var Irc::ERR_INVALIDUSERNAME + \brief 468 + */ +/*! + \var Irc::ERR_ONLYSERVERSCANCHANGE + \brief 468 + */ +/*! + \var Irc::ERR_LINKSET + \brief 469 + */ +/*! + \var Irc::ERR_LINKCHANNEL + \brief 470 + */ +/*! + \var Irc::ERR_KICKEDFROMCHAN + \brief 470 + */ +/*! + \var Irc::ERR_CHANNELISFULL + \brief 471 + */ +/*! + \var Irc::ERR_UNKNOWNMODE + \brief 472 + */ +/*! + \var Irc::ERR_INVITEONLYCHAN + \brief 473 + */ +/*! + \var Irc::ERR_BANNEDFROMCHAN + \brief 474 + */ +/*! + \var Irc::ERR_BADCHANNELKEY + \brief 475 + */ +/*! + \var Irc::ERR_BADCHANMASK + \brief 476 + */ +/*! + \var Irc::ERR_NOCHANMODES + \brief 477 + */ +/*! + \var Irc::ERR_NEEDREGGEDNICK + \brief 477 + */ +/*! + \var Irc::ERR_BANLISTFULL + \brief 478 + */ +/*! + \var Irc::ERR_BADCHANNAME + \brief 479 + */ +/*! + \var Irc::ERR_LINKFAIL + \brief 479 + */ +/*! + \var Irc::ERR_NOULINE + \brief 480 + */ +/*! + \var Irc::ERR_CANNOTKNOCK + \brief 480 + */ +/*! + \var Irc::ERR_NOPRIVILEGES + \brief 481 + */ +/*! + \var Irc::ERR_CHANOPRIVSNEEDED + \brief 482 + */ +/*! + \var Irc::ERR_CANTKILLSERVER + \brief 483 + */ +/*! + \var Irc::ERR_RESTRICTED + \brief 484 + */ +/*! + \var Irc::ERR_ISCHANSERVICE + \brief 484 + */ +/*! + \var Irc::ERR_DESYNC + \brief 484 + */ +/*! + \var Irc::ERR_ATTACKDENY + \brief 484 + */ +/*! + \var Irc::ERR_UNIQOPRIVSNEEDED + \brief 485 + */ +/*! + \var Irc::ERR_KILLDENY + \brief 485 + */ +/*! + \var Irc::ERR_CANTKICKADMIN + \brief 485 + */ +/*! + \var Irc::ERR_ISREALSERVICE + \brief 485 + */ +/*! + \var Irc::ERR_NONONREG + \brief 486 + */ +/*! + \var Irc::ERR_HTMDISABLED + \brief 486 + */ +/*! + \var Irc::ERR_ACCOUNTONLY + \brief 486 + */ +/*! + \var Irc::ERR_CHANTOORECENT + \brief 487 + */ +/*! + \var Irc::ERR_MSGSERVICES + \brief 487 + */ +/*! + \var Irc::ERR_TSLESSCHAN + \brief 488 + */ +/*! + \var Irc::ERR_VOICENEEDED + \brief 489 + */ +/*! + \var Irc::ERR_SECUREONLYCHAN + \brief 489 + */ +/*! + \var Irc::ERR_NOOPERHOST + \brief 491 + */ +/*! + \var Irc::ERR_NOSERVICEHOST + \brief 492 + */ +/*! + \var Irc::ERR_NOFEATURE + \brief 493 + */ +/*! + \var Irc::ERR_BADFEATURE + \brief 494 + */ +/*! + \var Irc::ERR_BADLOGTYPE + \brief 495 + */ +/*! + \var Irc::ERR_BADLOGSYS + \brief 496 + */ +/*! + \var Irc::ERR_BADLOGVALUE + \brief 497 + */ +/*! + \var Irc::ERR_ISOPERLCHAN + \brief 498 + */ +/*! + \var Irc::ERR_CHANOWNPRIVNEEDED + \brief 499 + */ +/*! + \var Irc::ERR_UMODEUNKNOWNFLAG + \brief 501 + */ +/*! + \var Irc::ERR_USERSDONTMATCH + \brief 502 + */ +/*! + \var Irc::ERR_GHOSTEDCLIENT + \brief 503 + */ +/*! + \var Irc::ERR_VWORLDWARN + \brief 503 + */ +/*! + \var Irc::ERR_USERNOTONSERV + \brief 504 + */ +/*! + \var Irc::ERR_SILELISTFULL + \brief 511 + */ +/*! + \var Irc::ERR_TOOMANYWATCH + \brief 512 + */ +/*! + \var Irc::ERR_BADPING + \brief 513 + */ +/*! + \var Irc::ERR_INVALID_ERROR + \brief 514 + */ +/*! + \var Irc::ERR_TOOMANYDCC + \brief 514 + */ +/*! + \var Irc::ERR_BADEXPIRE + \brief 515 + */ +/*! + \var Irc::ERR_DONTCHEAT + \brief 516 + */ +/*! + \var Irc::ERR_DISABLED + \brief 517 + */ +/*! + \var Irc::ERR_NOINVITE + \brief 518 + */ +/*! + \var Irc::ERR_LONGMASK + \brief 518 + */ +/*! + \var Irc::ERR_ADMONLY + \brief 519 + */ +/*! + \var Irc::ERR_TOOMANYUSERS + \brief 519 + */ +/*! + \var Irc::ERR_OPERONLY + \brief 520 + */ +/*! + \var Irc::ERR_MASKTOOWIDE + \brief 520 + */ +/*! + \var Irc::ERR_WHOTRUNC + \brief 520 + */ +/*! + \var Irc::ERR_LISTSYNTAX + \brief 521 + */ +/*! + \var Irc::ERR_WHOSYNTAX + \brief 522 + */ +/*! + \var Irc::ERR_WHOLIMEXCEED + \brief 523 + */ +/*! + \var Irc::ERR_QUARANTINED + \brief 524 + */ +/*! + \var Irc::ERR_OPERSPVERIFY + \brief 524 + */ +/*! + \var Irc::ERR_REMOTEPFX + \brief 525 + */ +/*! + \var Irc::ERR_PFXUNROUTABLE + \brief 526 + */ +/*! + \var Irc::ERR_BADHOSTMASK + \brief 550 + */ +/*! + \var Irc::ERR_HOSTUNAVAIL + \brief 551 + */ +/*! + \var Irc::ERR_USINGSLINE + \brief 552 + */ +/*! + \var Irc::ERR_STATSSLINE + \brief 553 + */ +/*! + \var Irc::RPL_LOGON + \brief 600 + */ +/*! + \var Irc::RPL_LOGOFF + \brief 601 + */ +/*! + \var Irc::RPL_WATCHOFF + \brief 602 + */ +/*! + \var Irc::RPL_WATCHSTAT + \brief 603 + */ +/*! + \var Irc::RPL_NOWON + \brief 604 + */ +/*! + \var Irc::RPL_NOWOFF + \brief 605 + */ +/*! + \var Irc::RPL_WATCHLIST + \brief 606 + */ +/*! + \var Irc::RPL_ENDOFWATCHLIST + \brief 607 + */ +/*! + \var Irc::RPL_WATCHCLEAR + \brief 608 + */ +/*! + \var Irc::RPL_ISOPER + \brief 610 + */ +/*! + \var Irc::RPL_ISLOCOP + \brief 611 + */ +/*! + \var Irc::RPL_ISNOTOPER + \brief 612 + */ +/*! + \var Irc::RPL_ENDOFISOPER + \brief 613 + */ +/*! + \var Irc::RPL_DCCSTATUS + \brief 617 + */ +/*! + \var Irc::RPL_DCCLIST + \brief 618 + */ +/*! + \var Irc::RPL_ENDOFDCCLIST + \brief 619 + */ +/*! + \var Irc::RPL_WHOWASHOST + \brief 619 + */ +/*! + \var Irc::RPL_DCCINFO + \brief 620 + */ +/*! + \var Irc::RPL_ENDOFO + \brief 626 + */ +/*! + \var Irc::RPL_SETTINGS + \brief 630 + */ +/*! + \var Irc::RPL_ENDOFSETTINGS + \brief 631 + */ +/*! + \var Irc::RPL_DUMPING + \brief 640 + */ +/*! + \var Irc::RPL_DUMPRPL + \brief 641 + */ +/*! + \var Irc::RPL_EODUMP + \brief 642 + */ +/*! + \var Irc::RPL_TRACEROUTE_HOP + \brief 660 + */ +/*! + \var Irc::RPL_TRACEROUTE_START + \brief 661 + */ +/*! + \var Irc::RPL_MODECHANGEWARN + \brief 662 + */ +/*! + \var Irc::RPL_CHANREDIR + \brief 663 + */ +/*! + \var Irc::RPL_SERVMODEIS + \brief 664 + */ +/*! + \var Irc::RPL_OTHERUMODEIS + \brief 665 + */ +/*! + \var Irc::RPL_ENDOF_GENERIC + \brief 666 + */ +/*! + \var Irc::RPL_WHOWASDETAILS + \brief 670 + */ +/*! + \var Irc::RPL_WHOISSECURE + \brief 671 + */ +/*! + \var Irc::RPL_UNKNOWNMODES + \brief 672 + */ +/*! + \var Irc::RPL_CANNOTSETMODES + \brief 673 + */ +/*! + \var Irc::RPL_LUSERSTAFF + \brief 678 + */ +/*! + \var Irc::RPL_TIMEONSERVERIS + \brief 679 + */ +/*! + \var Irc::RPL_NETWORKS + \brief 682 + */ +/*! + \var Irc::RPL_YOURLANGUAGEIS + \brief 687 + */ +/*! + \var Irc::RPL_LANGUAGE + \brief 688 + */ +/*! + \var Irc::RPL_WHOISSTAFF + \brief 689 + */ +/*! + \var Irc::RPL_WHOISLANGUAGE + \brief 690 + */ +/*! + \var Irc::RPL_HELPSTART + \brief 704 + */ +/*! + \var Irc::RPL_HELPTXT + \brief 705 + */ +/*! + \var Irc::RPL_ENDOFHELP + \brief 706 + */ +/*! + \var Irc::RPL_ETRACEFULL + \brief 708 + */ +/*! + \var Irc::RPL_ETRACE + \brief 709 + */ +/*! + \var Irc::RPL_KNOCK + \brief 710 + */ +/*! + \var Irc::RPL_KNOCKDLVR + \brief 711 + */ +/*! + \var Irc::ERR_TOOMANYKNOCK + \brief 712 + */ +/*! + \var Irc::ERR_CHANOPEN + \brief 713 + */ +/*! + \var Irc::ERR_KNOCKONCHAN + \brief 714 + */ +/*! + \var Irc::ERR_KNOCKDISABLED + \brief 715 + */ +/*! + \var Irc::RPL_TARGUMODEG + \brief 716 + */ +/*! + \var Irc::RPL_TARGNOTIFY + \brief 717 + */ +/*! + \var Irc::RPL_UMODEGMSG + \brief 718 + */ +/*! + \var Irc::RPL_ENDOFOMOTD + \brief 722 + */ +/*! + \var Irc::ERR_NOPRIVS + \brief 723 + */ +/*! + \var Irc::RPL_TESTMARK + \brief 724 + */ +/*! + \var Irc::RPL_TESTLINE + \brief 725 + */ +/*! + \var Irc::RPL_NOTESTLINE + \brief 726 + */ +/*! + \var Irc::RPL_XINFO + \brief 771 + */ +/*! + \var Irc::RPL_XINFOSTART + \brief 773 + */ +/*! + \var Irc::RPL_XINFOEND + \brief 774 + */ +/*! + \var Irc::ERR_CANNOTDOCOMMAND + \brief 972 + */ +/*! + \var Irc::ERR_CANNOTCHANGEUMODE + \brief 973 + */ +/*! + \var Irc::ERR_CANNOTCHANGECHANMODE + \brief 974 + */ +/*! + \var Irc::ERR_CANNOTCHANGESERVERMODE + \brief 975 + */ +/*! + \var Irc::ERR_CANNOTSENDTONICK + \brief 976 + */ +/*! + \var Irc::ERR_UNKNOWNSERVERMODE + \brief 977 + */ +/*! + \var Irc::ERR_SERVERMODELOCK + \brief 979 + */ +/*! + \var Irc::ERR_BADCHARENCODING + \brief 980 + */ +/*! + \var Irc::ERR_TOOMANYLANGUAGES + \brief 981 + */ +/*! + \var Irc::ERR_NOLANGUAGE + \brief 982 + */ +/*! + \var Irc::ERR_TEXTTOOSHORT + \brief 983 + */ +/*! + \var Irc::ERR_NUMERIC_ERR + \brief 999 + */ + +/*! + \enum Irc::DataRole + This enum describes the available model data roles. + + \sa IrcBufferModel, IrcUserModel + */ + +/*! + \var Irc::UserRole + \brief User object (\ref IrcUser*) + */ + +/*! + \var Irc::BufferRole + \brief Buffer object (\ref IrcBuffer*) + */ + +/*! + \var Irc::ChannelRole + \brief Channel object (\ref IrcChannel*) + */ + +/*! + \var Irc::NameRole + \brief Buffer/user name (QString) + */ + +/*! + \var Irc::PrefixRole + \brief Channel/user prefix (QString) + */ + +/*! + \var Irc::ModeRole + \brief User mode (QString) + */ + +/*! + \var Irc::TitleRole + \brief Channel/user prefix and name (QString) + */ diff --git a/src/libcommuni/doc/header.html b/src/libcommuni/doc/header.html new file mode 100644 index 0000000..435f194 --- /dev/null +++ b/src/libcommuni/doc/header.html @@ -0,0 +1,55 @@ +<!-- HTML header for doxygen 1.8.5--> +<!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"> +<head> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta http-equiv="X-UA-Compatible" content="IE=9"/> +<meta name="generator" content="Doxygen $doxygenversion"/> +<!--BEGIN PROJECT_NAME--><title>$projectname: $title</title><!--END PROJECT_NAME--> +<!--BEGIN !PROJECT_NAME--><title>$title</title><!--END !PROJECT_NAME--> +<link href="$relpath^tabs.css" rel="stylesheet" type="text/css"/> +<script type="text/javascript" src="$relpath^jquery.js"></script> +<script type="text/javascript" src="$relpath^dynsections.js"></script> +$treeview +$search +$mathjax +<link href="$relpath^$stylesheet" rel="stylesheet" type="text/css" /> +$extrastylesheet +</head> +<body> +<div id="top"><!-- do not remove this div, it is closed by doxygen! --> + +<!--BEGIN TITLEAREA--> +<div id="titlearea"> +<table cellspacing="0" cellpadding="0"> + <tbody> + <tr style="height: 56px;"> + <!--BEGIN PROJECT_LOGO--> + <td id="projectlogo"><a href="http://communi.github.com"><img alt="Logo" src="$relpath^$projectlogo"/></a></td> + <!--END PROJECT_LOGO--> + <!--BEGIN PROJECT_NAME--> + <td style="padding-left: 0.5em;"> + <div id="projectname">$projectname + <!--BEGIN PROJECT_NUMBER--> <span id="projectnumber">$projectnumber</span><!--END PROJECT_NUMBER--> + </div> + <!--BEGIN PROJECT_BRIEF--><div id="projectbrief">$projectbrief</div><!--END PROJECT_BRIEF--> + </td> + <!--END PROJECT_NAME--> + <!--BEGIN !PROJECT_NAME--> + <!--BEGIN PROJECT_BRIEF--> + <td style="padding-left: 0.5em;"> + <div id="projectbrief">$projectbrief</div> + </td> + <!--END PROJECT_BRIEF--> + <!--END !PROJECT_NAME--> + <!--BEGIN DISABLE_INDEX--> + <!--BEGIN SEARCHENGINE--> + <td>$searchbox</td> + <!--END SEARCHENGINE--> + <!--END DISABLE_INDEX--> + </tr> + </tbody> +</table> +</div> +<!--END TITLEAREA--> +<!-- end header part --> diff --git a/src/libcommuni/doc/mainpage.dox b/src/libcommuni/doc/mainpage.dox new file mode 100644 index 0000000..622fb23 --- /dev/null +++ b/src/libcommuni/doc/mainpage.dox @@ -0,0 +1,54 @@ +/* + Copyright (C) 2008-2014 The Communi Project + + You may use this file under the terms of BSD license as follows: + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/*! + \mainpage Communi - a cross-platform IRC framework written with %Qt + + \section introduction Introduction + + Communi is a cross-platform <a href="http://en.wikipedia.org/wiki/Internet_Relay_Chat">IRC</a> + framework written with <a href="http://qt-project.org/">Qt</a>. Communi provides a set of tools + for enabling IRC connectivity in Qt-based C++ and QML applications. + + IRC (Internet Relay Chat protocol) is a simple text-based communication protocol. IRC was created + back in 1988 and is still popular particularly amongst open source projects. The Communi project's + own IRC channel \c \#communi is located on <a href="http://freenode.net/">Freenode</a>. + + \section getting-started Getting started + + Communi is divided in three <a href="modules.html" style="font-weight: bold;">modules</a>. + The following classes from the \ref core module are the most essential classes to get started. + + \li IrcConnection manages a connection to an IRC server. + \li IrcNetwork provides information about the connected IRC network. + \li IrcMessage represents a message received from the IRC server. + \li IrcCommand represents a command sent to the IRC server. + + Refer to the \ref usage document, and the list of + <a href="pages.html" style="font-weight: bold;">examples</a> for further details and help. + */ diff --git a/src/libcommuni/doc/minimal.dox b/src/libcommuni/doc/minimal.dox new file mode 100644 index 0000000..810f404 --- /dev/null +++ b/src/libcommuni/doc/minimal.dox @@ -0,0 +1,46 @@ +/* + Copyright (C) 2008-2014 The Communi Project + + You may use this file under the terms of BSD license as follows: + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/*! + \page minimal Minimal example + + The example illustrates the minimum amount of code required for: + \li Setting up and opening a connection, + \li joining a channel, + \li sending a channel message, + \li and quiting. + + \snippet minimal/main.cpp minimal + + Files: + \li \ref examples/minimal/main.cpp + + \file examples/minimal/main.cpp + \brief \ref minimal + \include examples/minimal/main.cpp + */ diff --git a/src/libcommuni/doc/modules.dox b/src/libcommuni/doc/modules.dox new file mode 100644 index 0000000..ee72180 --- /dev/null +++ b/src/libcommuni/doc/modules.dox @@ -0,0 +1,85 @@ +/* + Copyright (C) 2008-2014 The Communi Project + + You may use this file under the terms of BSD license as follows: + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/*! + \file irccore.h + \brief \#include <\ref core "IrcCore"> + */ + +/*! + \file ircmodel.h + \brief \#include <\ref models "IrcModel"> + */ + +/*! + \file ircutil.h + \brief \#include <\ref util "IrcUtil"> + */ + +/*! + \defgroup core IrcCore + \brief Core classes to manage IRC connections, receive messages and send commands. + + In order to enable the module, add the following lines to your qmake project (.pro) file: + \code + CONFIG += communi + COMMUNI += core + \endcode + + This sets up the necessary include paths and linker rules in order to use the module. + */ + +/*! + \defgroup models IrcModel + \brief Model classes to keep track of queries, channels and users. + + In order to enable the module, add the following lines to your qmake project (.pro) file: + \code + CONFIG += communi + COMMUNI += core model + \endcode + + This sets up the necessary include paths and linker rules in order to use the module. + + \note IrcModel depends on \ref core "IrcCore" + */ + +/*! + \defgroup util IrcUtil + \brief Miscellaneous utility classes for common IRC client related needs. + + In order to enable the module, add the following lines to your qmake project (.pro) file: + \code + CONFIG += communi + COMMUNI += core model util + \endcode + + This sets up the necessary include paths and linker rules in order to use the module. + + \note IrcUtil depends on \ref core "IrcCore" and \ref models "IrcModel" + */ diff --git a/src/libcommuni/doc/qml.dox b/src/libcommuni/doc/qml.dox new file mode 100644 index 0000000..da46191 --- /dev/null +++ b/src/libcommuni/doc/qml.dox @@ -0,0 +1,160 @@ +/* + Copyright (C) 2008-2014 The Communi Project + + You may use this file under the terms of BSD license as follows: + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/*! + \page qml QML compatibility + + Communi strives for full QML support. The property-based APIs have been + designed QML compatibility in mind. Almost all the types can be registered + to QML and used as is. + + A ready-made QML plugin is also provided for convenience. The plugin does + QML type registration and is made available via the following import: + + \code + import Communi 3.0 + \endcode + + \section qml-type-registration Type registration + + The following snippet illustrates how the Communi QML plugin does the type + registration. The same can be done manually in application code to avoid + the need of deploying the Communi QML plugin. + + \snippet src/imports/qml2/plugin.cpp qml-register-types + + \section qml-connecting-to-irc Connecting to IRC + + In order to connect to IRC in QML, declare an IrcConnection instance, + set the desired properties, and call \ref IrcConnection::open() + "connection.open()". + + \code + IrcConnection { + id: freenode + host: "irc.freenode.net" + userName: "communi" + nickName: "Communi" + Math.round(Math.random() * 9999) + realName: "Communi QML example" + } + \endcode + + \section qml-sending-commands Sending commands + + Even though the IrcCommand::createXxx() methods are static, QML does not + provide a way to call them without an IrcCommand instance. Thus, in order + to create and send commands, declare an instance of IrcCommand, call any + createXxx() method to create a command, and finally send it via + IrcCommand::sendCommand(). + + \code + IrcCommand { id: command } + + IrcConnection { + onConnected: { + var cmd = command.createJoin(channel) + sendCommand(cmd) + } + } + \endcode + + \section qml-channels-and-queries Channels and queries + + In order to keep track of channels and queries, declare an instance of + IrcBufferModel. Notice that it can be used directly as a data model for + QML types such as ListView and Repeater. + + \code + IrcBufferModel { + id: bufferModel + connection: freenode + } + \endcode + + IrcBufferModel creates channel and query buffers automatically when + the client joins channels and receives private messages, respectively. + + A typical IRC client has a special server buffer for messages that + are not targeted to any specific channel or query. This can be easily + achieved by declaring an instance of IrcBuffer and forwarding the + messages ignored by IrcBufferModel to it. + + \code + IrcBuffer { + id: serverBuffer + name: freenode.displayName + Component.onCompleted: bufferModel.add(serverBuffer) + } + + IrcBufferModel { + id: bufferModel + connection: freenode + onMessageIgnored: serverBuffer.receiveMessage(message) + } + \endcode + + \section qml-channel-users Channel users + + In order to keep track of channel users, create an instance of IrcUserModel. + It can be also used directly as a data model for QML types such as ListView + and Repeater. + + \code + IrcUserModel { + id: userModel + channel: currentBuffer.toChannel() + } + \endcode + + \section qml-parsing-user-commands Parsing user commands + + IrcCommandParser helps with parsing commands from user input. In order to + take it in use, declare an instance of IrcCommandParser and introduce the + desired commands. + + Notice that commands are often context sensitive. While some command may + accept an optional parameter that is filled up with the current target + (channel/query) name when absent, another command may always inject the + current target name as a certain parameter. Therefore IrcCommandParser + must be kept up-to-date with the current target and the list of channels. + + \code + IrcCommandParser { + id: parser + triggers: ["/"] + target: currentBuffer.title + channels: bufferModel.channels + Component.onCompleted: { + parser.addCommand(IrcCommand.Join, "JOIN <#channel> (<key>)"); + parser.addCommand(IrcCommand.Part, "PART (<#channel>) (<message...>)"); + parser.addCommand(IrcCommand.Kick, "KICK (<#channel>) <nick> (<reason...>)"); + parser.addCommand(IrcCommand.CtcpAction, "ME [target] <message...>"); + } + } + \endcode + */ diff --git a/src/libcommuni/doc/qmlbot.dox b/src/libcommuni/doc/qmlbot.dox new file mode 100644 index 0000000..13d76ec --- /dev/null +++ b/src/libcommuni/doc/qmlbot.dox @@ -0,0 +1,71 @@ +/* + Copyright (C) 2008-2014 The Communi Project + + You may use this file under the terms of BSD license as follows: + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/*! + \page qmlbot QML bot example + + The QML bot example is a simplified version of the \ref bot "bot example", + written in QML. See the \ref qml article for more QML specific details. + + \image html qmlbot.png "The QML bot example in action" + + The following snippet illustrates how IrcConnection is prepared and opened, + and how a command is queued to automatically join a channel when connected. + + \snippet qmlbot/qml/main.qml connection + + The example utilizes IrcCommandParser for parsing commands from messages + received from other clients. In order to take the parser in use, the supported + commands must be teached, as illustrated below. Some of the commands are context + sensitive, and the parser must be therefore kept aware of the list of channels + the bot is on. This is easily achieved by binding the IrcCommandParser::channels + property to the value of the IrcBufferModel::channels property. Furthermore, like + a typical IRC bot, the commands are triggered using a slightly different syntax in + queries and channels. + + \snippet qmlbot/qml/main.qml parser + + The bot listens to incoming messages via \ref IrcConnection::messageReceived(). + The current target is chosen based on whether the incoming message is a channel + or a private message. Each message content is parsed for commands that were + taught earlier. + + \snippet qmlbot/qml/main.qml receive + + Files: + \li \ref examples/qmlbot/main.cpp + \li \ref examples/qmlbot/qml/main.qml + + \file examples/qmlbot/main.cpp + \brief \ref qmlbot + \include examples/qmlbot/main.cpp + + \file examples/qmlbot/qml/main.qml + \brief \ref qmlbot + \include examples/qmlbot/qml/main.qml + */ diff --git a/src/libcommuni/doc/qmlbot.png b/src/libcommuni/doc/qmlbot.png Binary files differnew file mode 100644 index 0000000..6d6c87f --- /dev/null +++ b/src/libcommuni/doc/qmlbot.png diff --git a/src/libcommuni/doc/quick.dox b/src/libcommuni/doc/quick.dox new file mode 100644 index 0000000..347854e --- /dev/null +++ b/src/libcommuni/doc/quick.dox @@ -0,0 +1,91 @@ +/* + Copyright (C) 2008-2014 The Communi Project + + You may use this file under the terms of BSD license as follows: + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/*! + \page quick Qt Quick example + + The example illustrates how to create a simple GUI client using %Qt Quick. + + \image html quick.png "The Qt Quick example in action" + + If you're curious what the example does behind the scenes, try setting an + environment variable \c IRC_DEBUG=1 in order to enable verbose debug output + as explained in \ref debugging. + + Files: + \li \ref examples/quick/main.cpp + \li \ref examples/quick/qml/main.qml + \li \ref examples/quick/qml/BufferListView.qml + \li \ref examples/quick/qml/ChatPage.qml + \li \ref examples/quick/qml/ConnectPage.qml + \li \ref examples/quick/qml/MessageFormatter.qml + \li \ref examples/quick/qml/TextBrowser.qml + \li \ref examples/quick/qml/TextEntry.qml + \li \ref examples/quick/qml/TopicLabel.qml + \li \ref examples/quick/qml/UserListView.qml + + \file examples/quick/main.cpp + \brief \ref quick + \include examples/quick/main.cpp + + \file examples/quick/qml/main.qml + \brief \ref quick + \include examples/quick/qml/main.qml + + \file examples/quick/qml/BufferListView.qml + \brief \ref quick + \include examples/quick/qml/BufferListView.qml + + \file examples/quick/qml/ChatPage.qml + \brief \ref quick + \include examples/quick/qml/ChatPage.qml + + \file examples/quick/qml/ConnectPage.qml + \brief \ref quick + \include examples/quick/qml/ConnectPage.qml + + \file examples/quick/qml/MessageFormatter.qml + \brief \ref quick + \include examples/quick/qml/MessageFormatter.qml + + \file examples/quick/qml/TextBrowser.qml + \brief \ref quick + \include examples/quick/qml/TextBrowser.qml + + \file examples/quick/qml/TextEntry.qml + \brief \ref quick + \include examples/quick/qml/TextEntry.qml + + \file examples/quick/qml/TopicLabel.qml + \brief \ref quick + \include examples/quick/qml/TopicLabel.qml + + \file examples/quick/qml/UserListView.qml + \brief \ref quick + \include examples/quick/qml/UserListView.qml + */ diff --git a/src/libcommuni/doc/quick.png b/src/libcommuni/doc/quick.png Binary files differnew file mode 100644 index 0000000..c3d3cc7 --- /dev/null +++ b/src/libcommuni/doc/quick.png diff --git a/src/libcommuni/doc/usage.dox b/src/libcommuni/doc/usage.dox new file mode 100644 index 0000000..669bf94 --- /dev/null +++ b/src/libcommuni/doc/usage.dox @@ -0,0 +1,81 @@ +/* + Copyright (C) 2008-2014 The Communi Project + + You may use this file under the terms of BSD license as follows: + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/*! + \page usage Using Communi + + \section using-as-a-library Using as a library + + In order to use Communi as a library, build and install Communi using the standard mantra: + \code + $ qmake + $ make + $ sudo make install + \endcode + + This integrates Communi with qmake from the corresponding %Qt installation. To take Communi + in use in your application, add the following lines to your qmake project (.pro) file: + \code + CONFIG += communi + COMMUNI += core model util + \endcode + + This sets up the necessary include paths and linker rules in order to use the library. + Notice that the needed Communi <a href="modules.html">modules</a> can be controlled via + the \c COMMUNI qmake variable. The above example enables all available + <a href="modules.html">modules</a>. + + \section buiding-into-application Building into application + + In order to embed the whole Communi to an application, add the following line to your + qmake project (.pro) file: + \code + include(path/to/libcommuni/src/src.pri) + \endcode + + Alternatively, only specific module(s) can be included, for example: + \code + include(path/to/libcommuni/src/core/core.pri) + include(path/to/libcommuni/src/util/util.pri) + \endcode + + This sets up the necessary include paths, and builds Communi sources into the application + for convenient deployment on systems that do not have Communi installed. This option is + also convenient when adding Communi as a Git submodule to your project tree. + + \section namespace-support Namespace support + + The Communi source code can be compiled into a namespace to for example + avoid symbol conflicts. In order to embed a namespaced Communi to an + application, add the following lines to your qmake project (.pro) file: + + \code + DEFINES += IRC_NAMESPACE=Communi + include(path/to/libcommuni/src/src.pri) + \endcode + */ |
