File indexing completed on 2025-01-12 06:47:24
0001 // 0002 // C++ Implementation: cActionBase 0003 // 0004 // Description: action base 0005 // 0006 /* 0007 Copyright 2005-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 #include "cactionbase.h" 0024 #include "cactionmanager.h" 0025 #include "cprofilemanager.h" 0026 #include "cprofilesettings.h" 0027 0028 #include <map> 0029 0030 struct cActionBasePrivate { 0031 std::map<QString, int> attribs; 0032 std::map<QString, QString> strattribs; 0033 int sess; 0034 }; 0035 0036 cActionBase::cActionBase (const QString &name, int session) 0037 { 0038 d = new cActionBasePrivate; 0039 _name = name; 0040 d->sess = session; 0041 if (session >= 0) 0042 cActionManager::self()->registerObject (this, session); 0043 } 0044 0045 cActionBase::~cActionBase () 0046 { 0047 if (d->sess >= 0) 0048 cActionManager::self()->unregisterObject (this, d->sess); 0049 delete d; 0050 d = nullptr; 0051 } 0052 0053 int cActionBase::sess () 0054 { 0055 return d->sess; 0056 } 0057 0058 int cActionBase::attrib (const QString &name) 0059 { 0060 if (d->attribs.count (name)) 0061 return d->attribs[name]; 0062 return 0; 0063 } 0064 0065 void cActionBase::setAttrib (const QString &name, int value) 0066 { 0067 d->attribs[name] = value; 0068 } 0069 0070 QString cActionBase::strAttrib (const QString &name) 0071 { 0072 if (d->strattribs.count (name)) 0073 return d->strattribs[name]; 0074 return QString(); 0075 } 0076 0077 void cActionBase::setStrAttrib (const QString &name, const QString &value) 0078 { 0079 d->strattribs[name] = value; 0080 } 0081 0082 cProfileSettings *cActionBase::settings () 0083 { 0084 return cProfileManager::self()->settings (d->sess); 0085 } 0086 0087 void cActionBase::addEventHandler (QString name, int priority, ParamType pt) 0088 { 0089 cActionManager::self()->addEventHandler (this, d->sess, name, priority, pt); 0090 } 0091 0092 void cActionBase::removeEventHandler (QString name) 0093 { 0094 cActionManager::self()->removeEventHandler (this, d->sess, name); 0095 } 0096 0097 void cActionBase::addGlobalEventHandler (QString name, int priority, ParamType pt) 0098 { 0099 cActionManager::self()->addEventHandler (this, 0, name, priority, pt); 0100 } 0101 0102 void cActionBase::removeGlobalEventHandler (QString name) 0103 { 0104 cActionManager::self()->removeEventHandler (this, 0, name); 0105 } 0106 0107 cActionBase *cActionBase::object (const QString &name, int session) 0108 { 0109 return cActionManager::self()->object (name, (session == -1) ? d->sess : session); 0110 } 0111 0112 QString cActionBase::callAction (QString objectName, QString action, int session, int par1, 0113 int par2) 0114 { 0115 return cActionManager::self()->callAction (objectName, action, session, par1, par2); 0116 } 0117 0118 QString cActionBase::callAction (QString objectName, QString action, int session, 0119 QString &par1, const QString &par2) 0120 { 0121 return cActionManager::self()->callAction (objectName, action, session, par1, par2); 0122 } 0123 0124 QString cActionBase::callAction (QString objectName, QString action, int session, 0125 const QString &par1, const QString &par2) 0126 { 0127 QString p = par1; 0128 return cActionManager::self()->callAction (objectName, action, session, p, par2); 0129 } 0130 0131 QString cActionBase::callAction (QString objectName, QString action, int session) 0132 { 0133 return cActionManager::self()->callAction (objectName, action, session); 0134 } 0135 0136 QString cActionBase::callAction (QString objectName, QString action, int session, cTextChunk *par) 0137 { 0138 return cActionManager::self()->callAction (objectName, action, session, par); 0139 } 0140 0141 QString cActionBase::callAction (QString objectName, QString action, int session, void *par) 0142 { 0143 return cActionManager::self()->callAction (objectName, action, session, par); 0144 } 0145 0146 void cActionBase::invokeEvent (QString event, int session, int par1, int par2) 0147 { 0148 cActionManager::self()->invokeEvent (event, session, par1, par2); 0149 } 0150 0151 void cActionBase::invokeEvent (QString event, int session, QString &par1, 0152 const QString &par2) 0153 { 0154 cActionManager::self()->invokeEvent (event, session, par1, par2); 0155 } 0156 0157 void cActionBase::invokeEvent (QString event, int session, const QString &par1, 0158 const QString &par2) 0159 { 0160 QString p = par1; 0161 cActionManager::self()->invokeEvent (event, session, p, par2); 0162 } 0163 0164 void cActionBase::invokeEvent (QString event, int session) 0165 { 0166 cActionManager::self()->invokeEvent (event, session); 0167 } 0168 0169 void cActionBase::invokeEvent (QString event, int session, cTextChunk *par) 0170 { 0171 cActionManager::self()->invokeEvent (event, session, par); 0172 } 0173 0174 void cActionBase::invokeEvent (QString event, int session, void *par) 0175 { 0176 cActionManager::self()->invokeEvent (event, session, par); 0177 } 0178 0179 void cActionBase::eventNothingHandler (QString /*event*/, int /*session*/) {} 0180 void cActionBase::eventIntHandler (QString /*event*/, int /*session*/, int /*par1*/, int /*par2*/){} 0181 void cActionBase::eventStringHandler (QString /*event*/, int /*session*/, 0182 QString &/*par1*/, const QString &/*par2*/){} 0183 void cActionBase::eventChunkHandler (QString /*event*/, int /*session*/, cTextChunk * /*par*/){} 0184 void cActionBase::eventVoidHandler (QString /*event*/, int /*session*/, void * /*par*/){} 0185