1 // FunctionDefinition.cpp: implementation of the CFunctionDefinition class.
\r
3 //////////////////////////////////////////////////////////////////////
\r
6 #include "FunctionDefinition.h"
\r
7 #include "Commands.h"
\r
10 //////////////////////////////////////////////////////////////////////
\r
11 // Construction/Destruction
\r
12 //////////////////////////////////////////////////////////////////////
\r
14 CFunctionDefinition::CFunctionDefinition()
\r
19 CFunctionDefinition::CFunctionDefinition(CString szSymbol, CString szDefinition)
\r
21 SetSymbol(szSymbol);
\r
22 SetDefinition(szDefinition);
\r
25 CFunctionDefinition::~CFunctionDefinition()
\r
30 void CFunctionDefinition::SetSymbol(CString szSymbol)
\r
32 m_szSymbol = szSymbol;
\r
35 void CFunctionDefinition::SetDefinition(CString szDefinition)
\r
37 m_szDefinition = szDefinition;
\r
40 CString CFunctionDefinition::GetSymbol()
\r
45 CString CFunctionDefinition::GetDefinition()
\r
47 return m_szDefinition;
\r
50 void CFunctionDefinition::ClearKey(int nApplicationID)
\r
52 if (nApplicationID < 0 || MAX_APP <= nApplicationID) {
\r
56 while (!m_oKey[nApplicationID].IsEmpty()) {
\r
57 KeyBind *pKeyBind = (KeyBind *)m_oKey[nApplicationID].GetHead();
\r
60 m_oKey[nApplicationID].RemoveHead();
\r
64 void CFunctionDefinition::SetKey(int nApplicationID, int nCommandType, int nKey)
\r
66 if (nApplicationID < 0 || MAX_APP <= nApplicationID) {
\r
71 KeyBind *pKeyBind = new KeyBind;
\r
74 pKeyBind->nCommandType = nCommandType;
\r
75 pKeyBind->bVk = (BYTE)nKey;
\r
76 pKeyBind->nControlID = 0;
\r
78 m_oKey[nApplicationID].AddTail((CObject *)pKeyBind);
\r
81 catch (CMemoryException* e) {
\r
83 // CUtils::Log("CFunctionDefinition::SetKey: 'new' threw an exception");
\r
87 int CFunctionDefinition::GetKeyNumber(int nApplicationID)
\r
89 if (nApplicationID < 0 || MAX_APP <= nApplicationID) {
\r
93 return m_oKey[nApplicationID].GetCount();
\r
96 void CFunctionDefinition::GetKey(int nApplicationID, int nKeyID, int *pCommandType, int *pKey)
\r
101 if (nApplicationID < 0 || MAX_APP <= nApplicationID) {
\r
104 if (nKeyID < 0 || m_oKey[nApplicationID].GetCount() <= nKeyID) {
\r
108 KeyBind *pKeyBind = (KeyBind *)m_oKey[nApplicationID].GetAt(m_oKey[nApplicationID].FindIndex(nKeyID));
\r
109 *pCommandType = pKeyBind->nCommandType;
\r
110 *pKey = pKeyBind->bVk;
\r
113 void CFunctionDefinition::RemoveKey(int nApplicationID, int nCommandType, int nKey)
\r
115 if (nApplicationID < 0 || MAX_APP <= nApplicationID) {
\r
119 for (POSITION pos = m_oKey[nApplicationID].GetHeadPosition(); pos; ) {
\r
120 POSITION currentPos = pos;
\r
121 KeyBind *pKeyBind = (KeyBind *)m_oKey[nApplicationID].GetNext(pos);
\r
122 if (pKeyBind->nCommandType == nCommandType && pKeyBind->bVk == nKey) {
\r
125 m_oKey[nApplicationID].RemoveAt(currentPos);
\r