File indexing completed on 2024-04-14 14:32:10
0001 // 0002 // C++ Interface: ctriggerlist 0003 // 0004 // Description: list of triggers 0005 // 0006 /* 0007 Copyright 2002-2011 Tomas Mecir <kmuddy@kmuddy.com> 0008 0009 This program is free software; you can redistribute it and/or 0010 modify it under the terms of the GNU General Public License as 0011 published by the Free Software Foundation; either version 2 of 0012 the License, or (at your option) any later version. 0013 0014 This program is distributed in the hope that it will be useful, 0015 but WITHOUT ANY WARRANTY; without even the implied warranty of 0016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0017 GNU General Public License for more details. 0018 0019 You should have received a copy of the GNU General Public License 0020 along with this program. If not, see <http://www.gnu.org/licenses/>. 0021 */ 0022 0023 #ifndef CTRIGGERLIST_H 0024 #define CTRIGGERLIST_H 0025 0026 #include <clist.h> 0027 0028 #include <qdatetime.h> 0029 0030 class cTextChunk; 0031 0032 /** 0033 List of triggers. 0034 *@author Tomas Mecir 0035 */ 0036 0037 class cTriggerList : public cList { 0038 public: 0039 cTriggerList (); 0040 ~cTriggerList () override; 0041 0042 static cList *newList () { return new cTriggerList; }; 0043 cListObject *newObject () override; 0044 QString objName () override { return "Trigger"; } 0045 cListEditor *editor (QWidget *parent) override; 0046 0047 /** Sends these commands via cCmdProcessor. */ 0048 virtual void processCommands (const QStringList &commands); 0049 /** Perform matching of string against items of the list. Each match produces command(s), 0050 which are passed to processCommands() */ 0051 virtual void matchString (cTextChunk *line); 0052 bool detectingPrompt (); 0053 void setDetectingPrompt (bool val); 0054 0055 /** rewrite text - called by rewrite triggers */ 0056 void rewriteText (int pos, int len, const QString &newtext); 0057 protected: 0058 friend class cTrigger; 0059 struct Private; 0060 Private *d; 0061 0062 cTextChunk *lineToMatch (); 0063 QString stringToMatch (); 0064 }; 0065 0066 #endif