1 // FunctionDefinition.cpp: implementation of the CFunctionDefinition class.
\r
3 //////////////////////////////////////////////////////////////////////
\r
6 #include "FunctionDefinition.h"
\r
7 #include "Commands.h"
\r
10 CFunctionDefinition::CFunctionDefinition(CString szSymbol, CString szDefinition)
\r
12 SetSymbol(szSymbol);
\r
13 SetDefinition(szDefinition);
\r
16 void CFunctionDefinition::SetSymbol(CString szSymbol)
\r
18 m_szSymbol = szSymbol;
\r
21 void CFunctionDefinition::SetDefinition(CString szDefinition)
\r
23 m_szDefinition = szDefinition;
\r
26 CString CFunctionDefinition::GetSymbol()
\r
31 CString CFunctionDefinition::GetDefinition()
\r
33 return m_szDefinition;
\r
36 void CFunctionDefinition::ClearKey(int nAppID)
\r
38 if (nAppID < 0 || MAX_APP <= nAppID) {
\r
42 while (!m_oKey[nAppID].IsEmpty()) {
\r
43 KeyBind *pKeyBind = (KeyBind *)m_oKey[nAppID].GetHead();
\r
46 m_oKey[nAppID].RemoveHead();
\r
50 void CFunctionDefinition::SetKey(int nAppID, int nType, int nKey)
\r
52 if (nAppID < 0 || MAX_APP <= nAppID) {
\r
57 KeyBind *pKeyBind = new KeyBind;
\r
60 pKeyBind->nType = nType;
\r
61 pKeyBind->bVk = (BYTE)nKey;
\r
62 pKeyBind->nControlID = 0;
\r
64 m_oKey[nAppID].AddTail((CObject *)pKeyBind);
\r
67 catch (CMemoryException* e) {
\r
69 // CUtils::Log("CFunctionDefinition::SetKey: 'new' threw an exception");
\r
73 int CFunctionDefinition::GetKeyNumber(int nAppID)
\r
75 if (nAppID < 0 || MAX_APP <= nAppID) {
\r
79 return m_oKey[nAppID].GetCount();
\r
82 void CFunctionDefinition::GetKey(int nAppID, int nKeyID, int *pCommandType, int *pKey)
\r
87 if (nAppID < 0 || MAX_APP <= nAppID) {
\r
90 if (nKeyID < 0 || m_oKey[nAppID].GetCount() <= nKeyID) {
\r
94 KeyBind *pKeyBind = (KeyBind *)m_oKey[nAppID].GetAt(m_oKey[nAppID].FindIndex(nKeyID));
\r
95 *pCommandType = pKeyBind->nType;
\r
96 *pKey = pKeyBind->bVk;
\r
99 void CFunctionDefinition::RemoveKey(int nAppID, int nType, int nKey)
\r
101 if (nAppID < 0 || MAX_APP <= nAppID) {
\r
105 for (POSITION pos = m_oKey[nAppID].GetHeadPosition(); pos; ) {
\r
106 POSITION currentPos = pos;
\r
107 KeyBind *pKeyBind = (KeyBind *)m_oKey[nAppID].GetNext(pos);
\r
108 if (pKeyBind->nType == nType && pKeyBind->bVk == nKey) {
\r
111 m_oKey[nAppID].RemoveAt(currentPos);
\r