4 const int MAX_KEY_BIND = 8;
\r
5 const int MAX_COMMAND = 115;
\r
7 class AFX_EXT_CLASS CmdTable
\r
17 KeyBind KeyBind[MAX_KEY_BIND];
\r
19 static LPCTSTR Name(int cmdID);
\r
20 static int CategoryID(int cmdID);
\r
21 static int DescriptionID(int cmdID);
\r
22 static int ToolTipID(int cmdID);
\r
23 static int (*Command(int cmdID))();
\r
24 static const KeyBind Bind(int cmdID, int index);
\r
25 static const int* Categories();
\r
26 static int CmdByName(LPCTSTR name);
\r
27 template <typename T> static void EnumCommands(T* obj, void (T::*func)(int cmdID, const KeyBind& bind, int arg), int arg)
\r
29 for (int cmdID = 0; cmdID < MAX_COMMAND; ++cmdID)
\r
30 for (int i = 0; i < MAX_KEY_BIND; ++i) {
\r
31 KeyBind bind = Bind(cmdID, i);
\r
34 (obj->*func)(cmdID, bind, arg);
\r
38 static const CmdDef m_Table[MAX_COMMAND];
\r
39 static const int m_Categories[];
\r