1 #ifndef _KVI_KVS_TREENODE_SPECIALCOMMANDCLASS_H_
2 #define _KVI_KVS_TREENODE_SPECIALCOMMANDCLASS_H_
3 //=============================================================================
4 //
5 //   File : KviKvsTreeNodeSpecialCommandClass.h
6 //   Creation date : Fri 12 Aug 2005 03:23:31 by Szymon Stefanek
7 //
8 //   This file is part of the KVIrc IRC Client distribution
9 //   Copyright (C) 2005-2010 Szymon Stefanek <pragma at kvirc dot net>
10 //
11 //   This program is FREE software. You can redistribute it and/or
12 //   modify it under the terms of the GNU General Public License
13 //   as published by the Free Software Foundation; either version 2
14 //   of the License, or (at your option) any later version.
15 //
16 //   This program is distributed in the HOPE that it will be USEFUL,
17 //   but WITHOUT ANY WARRANTY; without even the implied warranty of
18 //   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
19 //   See the GNU General Public License for more details.
20 //
21 //   You should have received a copy of the GNU General Public License
22 //   along with this program. If not, write to the Free Software Foundation,
23 //   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
24 //
25 //=============================================================================
26 
27 #include "kvi_settings.h"
28 #include "KviQString.h"
29 #include "KviKvsTreeNodeSpecialCommand.h"
30 #include "KviKvsTreeNodeBase.h"
31 #include "KviKvsTreeNodeDataList.h"
32 
33 class KviKvsRunTimeContext;
34 
35 class KVIRC_API KviKvsTreeNodeSpecialCommandClassFunctionDefinition : public KviKvsTreeNode
36 {
37 public:
38 	KviKvsTreeNodeSpecialCommandClassFunctionDefinition(const QChar * pLocation, const QString & szName, const QString & szBuffer, const QString & szReminder, unsigned int uHandlerFlags);
~KviKvsTreeNodeSpecialCommandClassFunctionDefinition()39 	virtual ~KviKvsTreeNodeSpecialCommandClassFunctionDefinition(){};
40 
41 protected:
42 	QString m_szName;
43 	QString m_szReminder;
44 	QString m_szBuffer;
45 	unsigned int m_uHandlerFlags;
46 
47 public:
handlerFlags()48 	unsigned int handlerFlags() { return m_uHandlerFlags; };
name()49 	const QString & name() { return m_szName; };
reminder()50 	const QString & reminder() { return m_szReminder; };
buffer()51 	const QString & buffer() { return m_szBuffer; };
52 	virtual void contextDescription(QString & szBuffer);
53 	virtual void dump(const char * prefix);
54 };
55 
56 class KVIRC_API KviKvsTreeNodeSpecialCommandClass : public KviKvsTreeNodeSpecialCommand
57 {
58 public:
59 	KviKvsTreeNodeSpecialCommandClass(const QChar * pLocation, KviKvsTreeNodeDataList * pParams);
60 	virtual ~KviKvsTreeNodeSpecialCommandClass();
61 
62 protected:
63 	KviKvsTreeNodeDataList * m_pParams;
64 	KviPointerList<KviKvsTreeNodeSpecialCommandClassFunctionDefinition> * m_pFunctions;
65 
66 public:
67 	void addFunctionDefinition(KviKvsTreeNodeSpecialCommandClassFunctionDefinition * pDef);
68 	virtual void contextDescription(QString & szBuffer);
69 	virtual void dump(const char * prefix);
70 	virtual bool execute(KviKvsRunTimeContext * c);
71 };
72 
73 #endif //!_KVI_KVS_TREENODE_SPECIALCOMMANDCLASS_H_
74