diff options
Diffstat (limited to 'src/modules/tmphighlight/libkvitmphighlight.cpp')
-rw-r--r-- | src/modules/tmphighlight/libkvitmphighlight.cpp | 174 |
1 files changed, 174 insertions, 0 deletions
diff --git a/src/modules/tmphighlight/libkvitmphighlight.cpp b/src/modules/tmphighlight/libkvitmphighlight.cpp new file mode 100644 index 00000000..17f4ce17 --- /dev/null +++ b/src/modules/tmphighlight/libkvitmphighlight.cpp @@ -0,0 +1,174 @@ +// File : libkvitmphighlight.cpp +// Creation date : Oct 10 01:06:09 CEST 2002 by Juanjo �varez +// +// This file is part of the KVirc irc client distribution +// Copyright (C) 2002 Juanjo �varez (juanjux@yahoo.es) +// Copyright (C) 2002 Szymon Stefanek (kvirc@tin.it) +// +// This program is FREE software. You can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either version 2 +// of the License, or (at your opinion) any later version. +// +// This program is distributed in the HOPE that it will be USEFUL, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, write to the Free Software Foundation, +// Inc. ,51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +// + + +#include "kvi_module.h" + +#include "kvi_locale.h" +#include "kvi_channel.h" + +//------------------------------------------------- +/* + @doc: tmphighlight.add + @type: + command + @title: + tmphighlight.add + @short: + Adds a user to the channel temporary highlight list + @syntax: + tmphighlight.add <nick:string> + @description: + This command adds a user to the channel temporary highlight list, so that user messages[br] + will be highlighted until you close the channel. This is useful when you are in a very crowded [br] + channel with lots of conversations running in parallel and you want to follow one of them.[br] + @seealso: + [fnc]$tmphighlight.remove[/fnc] + [fnc]$tmphighlight.ishighlighted[/fnc] +*/ +//------------------------------------------- +// tmphighlight.add +//------------------------------------------- +static bool tmphighlight_kvs_cmd_add(KviKvsModuleCommandCall * c) +{ + + QString szNick; + KVSM_PARAMETERS_BEGIN(c) + KVSM_PARAMETER("nick",KVS_PT_NONEMPTYSTRING,0,szNick) + KVSM_PARAMETERS_END(c) + if( ( !c->window()->console()) || c->window()->console()->isNotConnected() )return c->context()->errorNoIrcContext(); + if(!c->window()->type() == KVI_WINDOW_TYPE_CHANNEL) + { + c->warning(__tr2qs("Current window is not a channel")); + return false; + } + + ((KviChannel *)c->window())->addHighlightedUser(szNick); + + return true; +} +//------------------------------------------------- +/* + @doc: tmphighlight.remove + @type: + command + @title: + tmphighlight.remove + @short: + Remove a user from the channel temporary highlight list + @syntax: + tmphighlight.remove <nick:string> + @description: + This command remove a user from the channel temporary highlight list, so that user messages[br] + stop being highlighted. + @seealso: + [fnc]$tmphighlight.add[/fnc] + [fnc]$tmphighlight.ishighlighted[/fnc] +*/ +//------------------------------------------- +// tmphighlight.remove +//------------------------------------------- + +static bool tmphighlight_kvs_cmd_remove(KviKvsModuleCommandCall * c) +{ + QString szNick; + KVSM_PARAMETERS_BEGIN(c) + KVSM_PARAMETER("nick",KVS_PT_NONEMPTYSTRING,0,szNick) + KVSM_PARAMETERS_END(c) + if( ( !c->window()->console()) || c->window()->console()->isNotConnected() )return c->context()->errorNoIrcContext(); + if(!c->window()->type() == KVI_WINDOW_TYPE_CHANNEL) + { + c->warning(__tr2qs("Current window is not a channel")); + return false; + } + + ((KviChannel *)c->window())->removeHighlightedUser(szNick); + return true; +} +//------------------------------------------------- +/* + @doc: tmphighlight.ishighlighted + @type: + function + @title: + $tmphighlight.ishighlighted + @short: + Returns 1 if the user is highlighted on this channel, 0 otherwise + @syntax: + <boolean> $tmphighlight.ishighlighted <nick:string> + @description: + This command returns 1 if the user is highlighted on this channel and on this session of 0 otherwise. + @seealso: + [fnc]$tmphighlight.add[/fnc] + [fnc]$tmphighlight.remove[/fnc] + +*/ +//------------------------------------------- +// tmphighlight.ishighlighted +//------------------------------------------- + +static bool tmphighlight_kvs_fnc_ishighlighted(KviKvsModuleFunctionCall * c) +{ + QString szNick; + KVSM_PARAMETERS_BEGIN(c) + KVSM_PARAMETER("nick",KVS_PT_NONEMPTYSTRING,0,szNick) + KVSM_PARAMETERS_END(c) + if( ( !c->window()->console()) || c->window()->console()->isNotConnected() )return c->context()->errorNoIrcContext(); + if(!c->window()->type() == KVI_WINDOW_TYPE_CHANNEL) + { + c->warning(__tr2qs("Current window is not a channel")); + return false; + } + c->returnValue()->setBoolean(((KviChannel *)c->window())->isHighlightedUser(szNick)); + return true; +} + +//------------------------------------------------- +static bool tmphighlight_module_init(KviModule * m) +{ + KVSM_REGISTER_SIMPLE_COMMAND(m,"add",tmphighlight_kvs_cmd_add); + KVSM_REGISTER_SIMPLE_COMMAND(m,"remove",tmphighlight_kvs_cmd_remove); + KVSM_REGISTER_FUNCTION(m,"isHighVisible",tmphighlight_kvs_fnc_ishighlighted); + KVSM_REGISTER_FUNCTION(m,"isHighLighted",tmphighlight_kvs_fnc_ishighlighted); + return true; +} +//------------------------------------------------- +static bool tmphighlight_module_cleanup(KviModule *m) +{ + return true; +} +//------------------------------------------------- +static bool tmphighlight_module_can_unload(KviModule *m) +{ + return true; +} +//------------------------------------------------- +KVIRC_MODULE( + "TmpHighlight", // module name + "1.0.0", // module version + " (C) 2002 Juanjo Alvarez (juanjux@yahoo.es)", // author & (C) + "Temporal Highlightining of channel users", + tmphighlight_module_init, + tmphighlight_module_can_unload, + 0, + tmphighlight_module_cleanup +) |