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 nApplicationID)
\r
38 if (nApplicationID < 0 || MAX_APP <= nApplicationID) {
\r
42 while (!m_oKey[nApplicationID].IsEmpty()) {
\r
43 KeyBind *pKeyBind = (KeyBind *)m_oKey[nApplicationID].GetHead();
\r
46 m_oKey[nApplicationID].RemoveHead();
\r
50 void CFunctionDefinition::SetKey(int nApplicationID, int nCommandType, int nKey)
\r
52 if (nApplicationID < 0 || MAX_APP <= nApplicationID) {
\r
57 KeyBind *pKeyBind = new KeyBind;
\r
60 pKeyBind->nCommandType = nCommandType;
\r
61 pKeyBind->bVk = (BYTE)nKey;
\r
62 pKeyBind->nControlID = 0;
\r
64 m_oKey[nApplicationID].AddTail((CObject *)pKeyBind);
\r
67 catch (CMemoryException* e) {
\r
69 // CUtils::Log("CFunctionDefinition::SetKey: 'new' threw an exception");
\r
73 int CFunctionDefinition::GetKeyNumber(int nApplicationID)
\r
75 if (nApplicationID < 0 || MAX_APP <= nApplicationID) {
\r
79 return m_oKey[nApplicationID].GetCount();
\r
82 void CFunctionDefinition::GetKey(int nApplicationID, int nKeyID, int *pCommandType, int *pKey)
\r
87 if (nApplicationID < 0 || MAX_APP <= nApplicationID) {
\r
90 if (nKeyID < 0 || m_oKey[nApplicationID].GetCount() <= nKeyID) {
\r
94 KeyBind *pKeyBind = (KeyBind *)m_oKey[nApplicationID].GetAt(m_oKey[nApplicationID].FindIndex(nKeyID));
\r
95 *pCommandType = pKeyBind->nCommandType;
\r
96 *pKey = pKeyBind->bVk;
\r
99 void CFunctionDefinition::RemoveKey(int nApplicationID, int nCommandType, int nKey)
\r
101 if (nApplicationID < 0 || MAX_APP <= nApplicationID) {
\r
105 for (POSITION pos = m_oKey[nApplicationID].GetHeadPosition(); pos; ) {
\r
106 POSITION currentPos = pos;
\r
107 KeyBind *pKeyBind = (KeyBind *)m_oKey[nApplicationID].GetNext(pos);
\r
108 if (pKeyBind->nCommandType == nCommandType && pKeyBind->bVk == nKey) {
\r
111 m_oKey[nApplicationID].RemoveAt(currentPos);
\r