OSDN Git Service

Add declarations of index variables.
[xkeymacs/xkeymacs.git] / xkeymacs / propertiesbasic.cpp
1 // PropertiesBasic.cpp : implementation file\r
2 //\r
3 \r
4 #include "stdafx.h"\r
5 #include "xkeymacs.h"\r
6 #include "DotXkeymacs.h"\r
7 #include "Profile.h"\r
8 #include "Properties.h"\r
9 #include "PropertiesBasic.h"\r
10 \r
11 #ifdef _DEBUG\r
12 #define new DEBUG_NEW\r
13 #undef THIS_FILE\r
14 static char THIS_FILE[] = __FILE__;\r
15 #endif\r
16 \r
17 /////////////////////////////////////////////////////////////////////////////\r
18 // CPropertiesBasic property page\r
19 \r
20 IMPLEMENT_DYNCREATE(CPropertiesBasic, CPropertyPage)\r
21 \r
22 CPropertiesBasic::CPropertiesBasic() : CPropertyPage(CPropertiesBasic::IDD)\r
23 {\r
24         //{{AFX_DATA_INIT(CPropertiesBasic)\r
25         //}}AFX_DATA_INIT\r
26 }\r
27 \r
28 CPropertiesBasic::~CPropertiesBasic()\r
29 {\r
30 }\r
31 \r
32 void CPropertiesBasic::DoDataExchange(CDataExchange* pDX)\r
33 {\r
34         CPropertyPage::DoDataExchange(pDX);\r
35         //{{AFX_DATA_MAP(CPropertiesBasic)\r
36         //}}AFX_DATA_MAP\r
37 }\r
38 \r
39 \r
40 BEGIN_MESSAGE_MAP(CPropertiesBasic, CPropertyPage)\r
41         //{{AFX_MSG_MAP(CPropertiesBasic)\r
42         ON_WM_CREATE()\r
43         ON_BN_CLICKED(IDC_ALT, OnAlt)\r
44         ON_BN_CLICKED(IDC_C_, OnC_)\r
45         ON_BN_CLICKED(IDC_CA, OnCa)\r
46         ON_BN_CLICKED(IDC_CB, OnCb)\r
47         ON_BN_CLICKED(IDC_CBACKSLASH, OnCbackslash)\r
48         ON_BN_CLICKED(IDC_CBACKSLASH_106, OnCbackslash106)\r
49         ON_BN_CLICKED(IDC_CD, OnCd)\r
50         ON_BN_CLICKED(IDC_CDIGIT, OnCdigit)\r
51         ON_BN_CLICKED(IDC_CE, OnCe)\r
52         ON_BN_CLICKED(IDC_CF, OnCf)\r
53         ON_BN_CLICKED(IDC_CG, OnCg)\r
54         ON_BN_CLICKED(IDC_CH, OnCh)\r
55         ON_BN_CLICKED(IDC_CI, OnCi)\r
56         ON_BN_CLICKED(IDC_CK, OnCk)\r
57         ON_BN_CLICKED(IDC_CL, OnCl)\r
58         ON_BN_CLICKED(IDC_CM, OnCm)\r
59         ON_BN_CLICKED(IDC_CMS5, OnCms5)\r
60         ON_BN_CLICKED(IDC_CN, OnCn)\r
61         ON_BN_CLICKED(IDC_CO, OnCo)\r
62         ON_BN_CLICKED(IDC_CO2, OnCo2)\r
63         ON_BN_CLICKED(IDC_CP, OnCp)\r
64         ON_BN_CLICKED(IDC_CQ, OnCq)\r
65         ON_BN_CLICKED(IDC_CR, OnCr)\r
66         ON_BN_CLICKED(IDC_CS, OnCs)\r
67         ON_BN_CLICKED(IDC_CSLASH, OnCslash)\r
68         ON_BN_CLICKED(IDC_CSPACE, OnCspace)\r
69         ON_BN_CLICKED(IDC_CT, OnCt)\r
70         ON_BN_CLICKED(IDC_CU, OnCu)\r
71         ON_BN_CLICKED(IDC_CV, OnCv)\r
72         ON_BN_CLICKED(IDC_CW, OnCw)\r
73         ON_BN_CLICKED(IDC_CXB, OnCxb)\r
74         ON_BN_CLICKED(IDC_CXCC, OnCxcc)\r
75         ON_BN_CLICKED(IDC_CXCF, OnCxcf)\r
76         ON_BN_CLICKED(IDC_CXCJ, OnCxcj)\r
77         ON_BN_CLICKED(IDC_CXCP, OnCxcp)\r
78         ON_BN_CLICKED(IDC_CXCS, OnCxcs)\r
79         ON_BN_CLICKED(IDC_CXCT, OnCxct)\r
80         ON_BN_CLICKED(IDC_CXCW, OnCxcw)\r
81         ON_BN_CLICKED(IDC_CXE, OnCxe)\r
82         ON_BN_CLICKED(IDC_CXH, OnCxh)\r
83         ON_BN_CLICKED(IDC_CXK, OnCxk)\r
84         ON_BN_CLICKED(IDC_CXS0, OnCxs0)\r
85         ON_BN_CLICKED(IDC_CXS9, OnCxs9)\r
86         ON_BN_CLICKED(IDC_CXU, OnCxu)\r
87         ON_BN_CLICKED(IDC_CY, OnCy)\r
88         ON_BN_CLICKED(IDC_CZ, OnCz)\r
89         ON_BN_CLICKED(IDC_LEFT_ALT, OnLeftAlt)\r
90         ON_BN_CLICKED(IDC_MB, OnMb)\r
91         ON_BN_CLICKED(IDC_MD, OnMd)\r
92         ON_BN_CLICKED(IDC_MF, OnMf)\r
93         ON_BN_CLICKED(IDC_MI, OnMi)\r
94         ON_BN_CLICKED(IDC_MS1, OnMs1)\r
95         ON_BN_CLICKED(IDC_MS5, OnMs5)\r
96         ON_BN_CLICKED(IDC_MSCOMMA, OnMscomma)\r
97         ON_BN_CLICKED(IDC_MSPERIOD, OnMsperiod)\r
98         ON_BN_CLICKED(IDC_MV, OnMv)\r
99         ON_BN_CLICKED(IDC_MW, OnMw)\r
100         ON_BN_CLICKED(IDC_MY, OnMy)\r
101         ON_BN_CLICKED(IDC_RIGHT_ALT, OnRightAlt)\r
102         ON_BN_CLICKED(IDC_ESCAPE, OnEscape)\r
103         ON_BN_CLICKED(IDC_SQUARE_BRA, OnSquareBra)\r
104         ON_BN_CLICKED(IDC_MDEL, OnMdel)\r
105         ON_BN_CLICKED(IDC_MF12, OnMf12)\r
106         ON_BN_CLICKED(IDC_MT, OnMt)\r
107         ON_BN_CLICKED(IDC_MC, OnMc)\r
108         ON_BN_CLICKED(IDC_ML, OnMl)\r
109         ON_BN_CLICKED(IDC_MU, OnMu)\r
110         ON_BN_CLICKED(IDC_MX, OnMx)\r
111         //}}AFX_MSG_MAP\r
112 END_MESSAGE_MAP()\r
113 \r
114 /////////////////////////////////////////////////////////////////////////////\r
115 // CPropertiesBasic message handlers\r
116 \r
117 BOOL CPropertiesBasic::OnSetActive() \r
118 {\r
119         m_pProperties->EnableControl(BASIC_TAB);\r
120         SetDialogData(m_pProperties->GetCurrentApplication());\r
121 \r
122         return CPropertyPage::OnSetActive();\r
123 }\r
124 \r
125 void CPropertiesBasic::SetAllDialogData(UINT nCheck, BOOL bChanged)\r
126 {\r
127         for (int nCommandID = 0; nCommandID < MAX_COMMAND; ++nCommandID) {\r
128                 CString szCommandName = CCommands::GetCommandName(nCommandID);\r
129                 if (szCommandName.IsEmpty()) {\r
130                         break;\r
131                 }\r
132 \r
133                 for (int i = 0; ; ++i) {\r
134                         int nKey = CCommands::GetDefaultCommandKey(nCommandID, i);\r
135                         int nControlID = CCommands::GetDefaultControlID(nCommandID, i);\r
136                         if (nKey == 0) {\r
137                                 break;\r
138                         }\r
139                         CheckDlgButton(nControlID, nCheck);\r
140                 }\r
141         }\r
142         CheckDlgButton(IDC_CO2, BST_UNCHECKED);\r
143 \r
144         InitChanged(bChanged);\r
145 }\r
146 \r
147 void CPropertiesBasic::SetDialogData(CString szApplicationName)\r
148 {\r
149         UpdateDialogData(szApplicationName, FALSE);\r
150 }\r
151 \r
152 void CPropertiesBasic::UpdateDialogData(CString szApplicationName, BOOL bSaveAndValidate)\r
153 {\r
154         if (bSaveAndValidate) { // GetDialogData\r
155                 UpdateData();\r
156         }\r
157 \r
158         if (m_pProperties->GetApplicationID() == MAX_APP) {\r
159                 if (!bSaveAndValidate) {\r
160                         SetAllDialogData(1, FALSE);     // FIXME\r
161                 }\r
162                 return;\r
163         }\r
164 \r
165         // on/off\r
166         if (!bSaveAndValidate) {        // SetDialogData\r
167                 SetAllDialogData(1, FALSE);\r
168                 CheckDlgButton(IDC_CO2, BST_CHECKED);\r
169         }\r
170         for (int nCommandID = 0; nCommandID < MAX_COMMAND; ++nCommandID) {\r
171                 CString szCommandName = CCommands::GetCommandName(nCommandID);\r
172                 if (szCommandName.IsEmpty()) {\r
173                         break;\r
174                 }\r
175 \r
176                 for (int i = 0; ; ++i) {\r
177                         int nCommandType = CCommands::GetDefaultCommandType(nCommandID, i);\r
178                         int nKey = CCommands::GetDefaultCommandKey(nCommandID, i);\r
179                         int nControlID = CCommands::GetDefaultControlID(nCommandID, i);\r
180                         if (nKey == 0) {\r
181                                 break;\r
182                         }\r
183                         if (bSaveAndValidate) { // GetDialogData\r
184                                 if (nControlID == IDC_CO2) {\r
185                                         continue;\r
186                                 }\r
187                                 if (!m_bChanged[nCommandID]) {\r
188                                         continue;\r
189                                 }\r
190                                 if (IsDlgButtonChecked(nControlID)) {\r
191                                         CProfile::SetCommandID(m_pProperties->GetApplicationID(), nCommandType, nKey, nCommandID);\r
192                                         CDotXkeymacs::RemoveKey(m_pProperties->GetApplicationID(), nCommandType, nKey);\r
193                                 } else {\r
194                                         CProfile::SetCommandID(m_pProperties->GetApplicationID(), nCommandType, nKey, 0);\r
195                                 }\r
196                         } else {                                // SetDialogData\r
197                                 if (nCommandID != CProfile::GetCommandID(m_pProperties->GetApplicationID(), nCommandType, nKey)) {\r
198                                         CheckDlgButton(nControlID, BST_UNCHECKED);\r
199                                 }\r
200                         }\r
201                 }\r
202         }\r
203         // only for Toggle Imput Method Editor C-o: Canna mode\r
204         if (bSaveAndValidate) { // GetDialogData\r
205                 int nCommandType = CONTROL;\r
206                 int nKey = 'O';\r
207                 if (CProfile::GetCommandID(m_pProperties->GetApplicationID(), nCommandType, nKey) == 0) {\r
208                         if (IsDlgButtonChecked(IDC_CO2)) {\r
209                                 for (int nCommandID = 0; nCommandID < MAX_COMMAND; ++nCommandID) {\r
210                                         CString szCommandName = CCommands::GetCommandName(nCommandID);\r
211                                         if (szCommandName.IsEmpty()) {\r
212                                                 break;\r
213                                         }\r
214                                         if (!szCommandName.CompareNoCase(_T("toggle-input-method"))) {\r
215                                                 CProfile::SetCommandID(m_pProperties->GetApplicationID(), nCommandType, nKey, nCommandID);\r
216                                                 CProfile::SetCommandID(m_pProperties->GetApplicationID(), CONTROL+SHIFT, nKey, nCommandID);\r
217                                                 break;\r
218                                         }\r
219                                 }\r
220                         }\r
221                 }\r
222         }\r
223 \r
224         if (!bSaveAndValidate) {        // SetDialogData\r
225                 UpdateData(FALSE);\r
226         }\r
227 }\r
228 \r
229 void CPropertiesBasic::InitChanged(BOOL bChanged)\r
230 {\r
231         for (int i = 0; i < MAX_COMMAND; ++i) {\r
232                 if (CCommands::GetDefaultControlID(i, 0) || !bChanged) {\r
233                         m_bChanged[i] = bChanged;\r
234                 }\r
235         }\r
236 }\r
237 \r
238 int CPropertiesBasic::OnCreate(LPCREATESTRUCT lpCreateStruct) \r
239 {\r
240         if (CPropertyPage::OnCreate(lpCreateStruct) == -1)\r
241                 return -1;\r
242 \r
243         m_pProperties = (CProperties *)GetParent()->GetParent();\r
244 \r
245         return 0;\r
246 }\r
247 \r
248 void CPropertiesBasic::GetDialogData()\r
249 {\r
250         UpdateDialogData(m_pProperties->GetCurrentApplication(), TRUE);\r
251 }\r
252 \r
253 void CPropertiesBasic::OnAlt() \r
254 {\r
255         Changed(IDC_ALT);\r
256 }\r
257 \r
258 void CPropertiesBasic::OnC_() \r
259 {\r
260         Changed(IDC_C_);\r
261 }\r
262 \r
263 void CPropertiesBasic::OnCa() \r
264 {\r
265         Changed(IDC_CA);\r
266 }\r
267 \r
268 void CPropertiesBasic::OnCb() \r
269 {\r
270         Changed(IDC_CB);\r
271 }\r
272 \r
273 void CPropertiesBasic::OnCbackslash() \r
274 {\r
275         Changed(IDC_CBACKSLASH);\r
276 }\r
277 \r
278 void CPropertiesBasic::OnCbackslash106() \r
279 {\r
280         Changed(IDC_CBACKSLASH_106);\r
281 }\r
282 \r
283 void CPropertiesBasic::OnCd() \r
284 {\r
285         Changed(IDC_CD);\r
286 }\r
287 \r
288 void CPropertiesBasic::OnCdigit() \r
289 {\r
290         Changed(IDC_CDIGIT);\r
291 }\r
292 \r
293 void CPropertiesBasic::OnCe() \r
294 {\r
295         Changed(IDC_CE);\r
296 }\r
297 \r
298 void CPropertiesBasic::OnCf() \r
299 {\r
300         Changed(IDC_CF);\r
301 }\r
302 \r
303 void CPropertiesBasic::OnCg() \r
304 {\r
305         Changed(IDC_CG);\r
306 }\r
307 \r
308 void CPropertiesBasic::OnCh() \r
309 {\r
310         Changed(IDC_CH);\r
311 }\r
312 \r
313 void CPropertiesBasic::OnCi() \r
314 {\r
315         Changed(IDC_CI);\r
316 }\r
317 \r
318 void CPropertiesBasic::OnCk() \r
319 {\r
320         Changed(IDC_CK);\r
321 }\r
322 \r
323 void CPropertiesBasic::OnCl() \r
324 {\r
325         Changed(IDC_CL);\r
326 }\r
327 \r
328 void CPropertiesBasic::OnCm() \r
329 {\r
330         Changed(IDC_CM);\r
331 }\r
332 \r
333 void CPropertiesBasic::OnCms5() \r
334 {\r
335         Changed(IDC_CMS5);\r
336 }\r
337 \r
338 void CPropertiesBasic::OnCn() \r
339 {\r
340         Changed(IDC_CN);\r
341 }\r
342 \r
343 void CPropertiesBasic::OnCo() \r
344 {\r
345         Changed(IDC_CO);\r
346         if (IsDlgButtonChecked(IDC_CO) == BST_CHECKED) {\r
347                 CheckDlgButton(IDC_CO2, BST_UNCHECKED);\r
348                 Changed(IDC_CO2);\r
349         }\r
350 }\r
351 \r
352 void CPropertiesBasic::OnCo2() \r
353 {\r
354         Changed(IDC_CO2);\r
355         if (IsDlgButtonChecked(IDC_CO2) == BST_CHECKED) {\r
356                 CheckDlgButton(IDC_CO, BST_UNCHECKED);\r
357                 Changed(IDC_CO);\r
358         }\r
359 }\r
360 \r
361 void CPropertiesBasic::OnCp() \r
362 {\r
363         Changed(IDC_CP);\r
364 }\r
365 \r
366 void CPropertiesBasic::OnCq() \r
367 {\r
368         Changed(IDC_CQ);\r
369 }\r
370 \r
371 void CPropertiesBasic::OnCr() \r
372 {\r
373         Changed(IDC_CR);\r
374 }\r
375 \r
376 void CPropertiesBasic::OnCs() \r
377 {\r
378         Changed(IDC_CS);\r
379 }\r
380 \r
381 void CPropertiesBasic::OnCslash() \r
382 {\r
383         Changed(IDC_CSLASH);\r
384 }\r
385 \r
386 void CPropertiesBasic::OnCspace() \r
387 {\r
388         Changed(IDC_CSPACE);\r
389 }\r
390 \r
391 void CPropertiesBasic::OnCt() \r
392 {\r
393         Changed(IDC_CT);\r
394 }\r
395 \r
396 void CPropertiesBasic::OnCu() \r
397 {\r
398         Changed(IDC_CU);\r
399 }\r
400 \r
401 void CPropertiesBasic::OnCv() \r
402 {\r
403         Changed(IDC_CV);\r
404 }\r
405 \r
406 void CPropertiesBasic::OnCw() \r
407 {\r
408         Changed(IDC_CW);\r
409 }\r
410 \r
411 void CPropertiesBasic::OnCxb() \r
412 {\r
413         Changed(IDC_CXB);\r
414 }\r
415 \r
416 void CPropertiesBasic::OnCxcc() \r
417 {\r
418         Changed(IDC_CXCC);\r
419 }\r
420 \r
421 void CPropertiesBasic::OnCxcf() \r
422 {\r
423         Changed(IDC_CXCF);\r
424 }\r
425 \r
426 void CPropertiesBasic::OnCxcj() \r
427 {\r
428         Changed(IDC_CXCJ);\r
429 }\r
430 \r
431 void CPropertiesBasic::OnCxcp() \r
432 {\r
433         Changed(IDC_CXCP);\r
434 }\r
435 \r
436 void CPropertiesBasic::OnCxcs() \r
437 {\r
438         Changed(IDC_CXCS);\r
439 }\r
440 \r
441 void CPropertiesBasic::OnCxct() \r
442 {\r
443         Changed(IDC_CXCT);\r
444 }\r
445 \r
446 void CPropertiesBasic::OnCxcw() \r
447 {\r
448         Changed(IDC_CXCW);\r
449 }\r
450 \r
451 void CPropertiesBasic::OnCxe() \r
452 {\r
453         Changed(IDC_CXE);\r
454 }\r
455 \r
456 void CPropertiesBasic::OnCxh() \r
457 {\r
458         Changed(IDC_CXH);\r
459 }\r
460 \r
461 void CPropertiesBasic::OnCxk() \r
462 {\r
463         Changed(IDC_CXK);\r
464 }\r
465 \r
466 void CPropertiesBasic::OnCxs0() \r
467 {\r
468         Changed(IDC_CXS0);\r
469 }\r
470 \r
471 void CPropertiesBasic::OnCxs9() \r
472 {\r
473         Changed(IDC_CXS9);\r
474 }\r
475 \r
476 void CPropertiesBasic::OnCxu() \r
477 {\r
478         Changed(IDC_CXU);\r
479 }\r
480 \r
481 void CPropertiesBasic::OnCy() \r
482 {\r
483         Changed(IDC_CY);\r
484 }\r
485 \r
486 void CPropertiesBasic::OnCz() \r
487 {\r
488         Changed(IDC_CZ);\r
489 }\r
490 \r
491 void CPropertiesBasic::OnEscape() \r
492 {\r
493         Changed(IDC_ESCAPE);\r
494 }\r
495 \r
496 void CPropertiesBasic::OnLeftAlt() \r
497 {\r
498         Changed(IDC_LEFT_ALT);\r
499 }\r
500 \r
501 void CPropertiesBasic::OnMb() \r
502 {\r
503         Changed(IDC_MB);\r
504 }\r
505 \r
506 void CPropertiesBasic::OnMd() \r
507 {\r
508         Changed(IDC_MD);\r
509 }\r
510 \r
511 void CPropertiesBasic::OnMf() \r
512 {\r
513         Changed(IDC_MF);\r
514 }\r
515 \r
516 void CPropertiesBasic::OnMi() \r
517 {\r
518         Changed(IDC_MI);\r
519 }\r
520 \r
521 void CPropertiesBasic::OnMs1() \r
522 {\r
523         Changed(IDC_MS1);\r
524 }\r
525 \r
526 void CPropertiesBasic::OnMs5() \r
527 {\r
528         Changed(IDC_MS5);\r
529 }\r
530 \r
531 void CPropertiesBasic::OnMscomma() \r
532 {\r
533         Changed(IDC_MSCOMMA);\r
534 }\r
535 \r
536 void CPropertiesBasic::OnMsperiod() \r
537 {\r
538         Changed(IDC_MSPERIOD);\r
539 }\r
540 \r
541 void CPropertiesBasic::OnMv() \r
542 {\r
543         Changed(IDC_MV);\r
544 }\r
545 \r
546 void CPropertiesBasic::OnMw() \r
547 {\r
548         Changed(IDC_MW);\r
549 }\r
550 \r
551 void CPropertiesBasic::OnMy() \r
552 {\r
553         Changed(IDC_MY);\r
554 }\r
555 \r
556 void CPropertiesBasic::OnRightAlt() \r
557 {\r
558         Changed(IDC_RIGHT_ALT);\r
559 }\r
560 \r
561 void CPropertiesBasic::OnSquareBra() \r
562 {\r
563         Changed(IDC_SQUARE_BRA);\r
564 }\r
565 \r
566 void CPropertiesBasic::Changed(int nObjectID)\r
567 {\r
568         for (int nCommandID = 0; nCommandID < MAX_COMMAND; ++nCommandID) {\r
569                 CString szCommandName = CCommands::GetCommandName(nCommandID);\r
570                 if (szCommandName.IsEmpty()) {\r
571                         break;\r
572                 }\r
573 \r
574                 for (int i = 0; ; ++i) {\r
575                         if (CCommands::GetDefaultCommandKey(nCommandID, i) == 0) {\r
576                                 break;\r
577                         }\r
578 \r
579                         int nControlID = CCommands::GetDefaultControlID(nCommandID, i);\r
580                         if ((nControlID == nObjectID)\r
581                          || ((nObjectID == IDC_CO) && (nControlID == IDC_CO2))\r
582                          || ((nObjectID == IDC_CO2) && (nControlID == IDC_CO))) {\r
583                                 m_bChanged[nCommandID] = TRUE;\r
584                         }\r
585                 }\r
586         }\r
587 }\r
588 \r
589 BOOL CPropertiesBasic::OnKillActive() \r
590 {\r
591         GetDialogData();\r
592 \r
593         return CPropertyPage::OnKillActive();\r
594 }\r
595 \r
596 void CPropertiesBasic::EnableControl()\r
597 {\r
598         BOOL bEnable = m_pProperties->IsEnableControl();\r
599 \r
600         for (int nCommandID = 0; nCommandID < MAX_COMMAND; ++nCommandID) {\r
601                 CString szCommandName = CCommands::GetCommandName(nCommandID);\r
602                 if (szCommandName.IsEmpty()) {\r
603                         break;\r
604                 }\r
605 \r
606                 for (int i = 0; ; ++i) {\r
607                         int nKey = CCommands::GetDefaultCommandKey(nCommandID, i);\r
608                         int nControlID = CCommands::GetDefaultControlID(nCommandID, i);\r
609                         if (nKey == 0) {\r
610                                 break;\r
611                         }\r
612                         if (GetDlgItem(nControlID)) {\r
613                                 GetDlgItem(nControlID)->EnableWindow(bEnable);\r
614                         }\r
615                 }\r
616         }\r
617 }\r
618 \r
619 BOOL CPropertiesBasic::PreTranslateMessage(MSG* pMsg) \r
620 {\r
621         m_ToolTip.RelayEvent(pMsg);\r
622 \r
623         return CPropertyPage::PreTranslateMessage(pMsg);\r
624 }\r
625 \r
626 BOOL CPropertiesBasic::OnInitDialog() \r
627 {\r
628         CPropertyPage::OnInitDialog();\r
629 \r
630         if (m_ToolTip.Create(this)) {\r
631                 for (int nCommandID = 0; nCommandID < MAX_COMMAND; ++nCommandID) {\r
632                         CString szCommandName = CCommands::GetCommandName(nCommandID);\r
633                         if (szCommandName.IsEmpty()) {\r
634                                 break;\r
635                         }\r
636 \r
637                         for (int i = 0; ; ++i) {\r
638                                 int nKey = CCommands::GetDefaultCommandKey(nCommandID, i);\r
639                                 int nControlID = CCommands::GetDefaultControlID(nCommandID, i);\r
640                                 if (nKey == 0) {\r
641                                         break;\r
642                                 }\r
643                                 if (GetDlgItem(nControlID)) {\r
644                                         m_ToolTip.AddTool(GetDlgItem(nControlID), CString(MAKEINTRESOURCE(CCommands::GetToolTipID(nCommandID))));\r
645                                 }\r
646                         }\r
647                 }\r
648         }\r
649 \r
650         return TRUE;  // return TRUE unless you set the focus to a control\r
651                       // EXCEPTION: OCX Property Pages should return FALSE\r
652 }\r
653 \r
654 void CPropertiesBasic::OnMdel() \r
655 {\r
656         Changed(IDC_MDEL);\r
657 }\r
658 \r
659 void CPropertiesBasic::OnMf12() \r
660 {\r
661         Changed(IDC_MF12);\r
662 }\r
663 \r
664 void CPropertiesBasic::OnMt() \r
665 {\r
666         Changed(IDC_MT);\r
667 }\r
668 \r
669 void CPropertiesBasic::OnMc() \r
670 {\r
671         Changed(IDC_MC);\r
672 }\r
673 \r
674 void CPropertiesBasic::OnMl() \r
675 {\r
676         Changed(IDC_ML);\r
677 }\r
678 \r
679 void CPropertiesBasic::OnMu() \r
680 {\r
681         Changed(IDC_MU);\r
682 }\r
683 \r
684 void CPropertiesBasic::OnMx() \r
685 {\r
686         Changed(IDC_MX);\r
687 }\r