OSDN Git Service

Remove the copyright notice and code to handle it. Modify the layout
[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();\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 nComID = 0; nComID < MAX_COMMAND; ++nComID) {\r
128                 CString szCommandName = CCommands::GetCommandName(nComID);\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(nComID, i);\r
135                         int nControlID = CCommands::GetDefaultControlID(nComID, 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()\r
148 {\r
149         SetAllDialogData(1, FALSE);\r
150         CheckDlgButton(IDC_CO2, BST_CHECKED);\r
151         const int nAppID = m_pProperties->GetApplicationID();\r
152         if (nAppID == MAX_APP)\r
153                 return;\r
154         for (int nComID = 0; nComID < MAX_COMMAND; ++nComID) {\r
155                 const LPCSTR szComName = CCommands::GetCommandName(nComID);\r
156                 if (!szComName[0])\r
157                         return;\r
158                 for (int i = 0; const int nKey = CCommands::GetDefaultCommandKey(nComID, i); ++i) {\r
159                         const int nType = CCommands::GetDefaultCommandType(nComID, i);\r
160                         const int nControlID = CCommands::GetDefaultControlID(nComID, i);\r
161                         if (nComID != CProfile::GetCommandID(nAppID, nType, nKey))\r
162                                 CheckDlgButton(nControlID, BST_UNCHECKED);\r
163                 }\r
164         }\r
165         UpdateData(FALSE);\r
166 }\r
167 \r
168 void CPropertiesBasic::InitChanged(BOOL bChanged)\r
169 {\r
170         for (int i = 0; i < MAX_COMMAND; ++i) {\r
171                 if (CCommands::GetDefaultControlID(i, 0) || !bChanged) {\r
172                         m_bChanged[i] = bChanged;\r
173                 }\r
174         }\r
175 }\r
176 \r
177 int CPropertiesBasic::OnCreate(LPCREATESTRUCT lpCreateStruct) \r
178 {\r
179         if (CPropertyPage::OnCreate(lpCreateStruct) == -1)\r
180                 return -1;\r
181 \r
182         m_pProperties = (CProperties *)GetParent()->GetParent();\r
183 \r
184         return 0;\r
185 }\r
186 \r
187 void CPropertiesBasic::GetDialogData()\r
188 {\r
189         UpdateData();\r
190         const int nAppID = m_pProperties->GetApplicationID();\r
191         if (nAppID == MAX_APP)\r
192                 return;\r
193         for (int nComID = 0; nComID < MAX_COMMAND; ++nComID) {\r
194                 const LPCSTR szComName = CCommands::GetCommandName(nComID);\r
195                 if (!szComName[0])\r
196                         return;\r
197                 for (int i = 0; const int nKey = CCommands::GetDefaultCommandKey(nComID, i); ++i) {\r
198                         const int nType = CCommands::GetDefaultCommandType(nComID, i);\r
199                         const int nControlID = CCommands::GetDefaultControlID(nComID, i);\r
200                         if (!m_bChanged[nComID])\r
201                                 continue;\r
202                         if (IsDlgButtonChecked(nControlID)) {\r
203                                 CProfile::SetCommandID(nAppID, nType, nKey, nComID);\r
204                                 CDotXkeymacs::RemoveKey(nAppID, nType, nKey);\r
205                         } else if (nControlID != IDC_CO2)\r
206                                 CProfile::SetCommandID(nAppID, nType, nKey, 0);\r
207                 }\r
208         }\r
209 }\r
210 \r
211 void CPropertiesBasic::OnAlt() \r
212 {\r
213         Changed(IDC_ALT);\r
214 }\r
215 \r
216 void CPropertiesBasic::OnC_() \r
217 {\r
218         Changed(IDC_C_);\r
219 }\r
220 \r
221 void CPropertiesBasic::OnCa() \r
222 {\r
223         Changed(IDC_CA);\r
224 }\r
225 \r
226 void CPropertiesBasic::OnCb() \r
227 {\r
228         Changed(IDC_CB);\r
229 }\r
230 \r
231 void CPropertiesBasic::OnCbackslash() \r
232 {\r
233         Changed(IDC_CBACKSLASH);\r
234 }\r
235 \r
236 void CPropertiesBasic::OnCbackslash106() \r
237 {\r
238         Changed(IDC_CBACKSLASH_106);\r
239 }\r
240 \r
241 void CPropertiesBasic::OnCd() \r
242 {\r
243         Changed(IDC_CD);\r
244 }\r
245 \r
246 void CPropertiesBasic::OnCdigit() \r
247 {\r
248         Changed(IDC_CDIGIT);\r
249 }\r
250 \r
251 void CPropertiesBasic::OnCe() \r
252 {\r
253         Changed(IDC_CE);\r
254 }\r
255 \r
256 void CPropertiesBasic::OnCf() \r
257 {\r
258         Changed(IDC_CF);\r
259 }\r
260 \r
261 void CPropertiesBasic::OnCg() \r
262 {\r
263         Changed(IDC_CG);\r
264 }\r
265 \r
266 void CPropertiesBasic::OnCh() \r
267 {\r
268         Changed(IDC_CH);\r
269 }\r
270 \r
271 void CPropertiesBasic::OnCi() \r
272 {\r
273         Changed(IDC_CI);\r
274 }\r
275 \r
276 void CPropertiesBasic::OnCk() \r
277 {\r
278         Changed(IDC_CK);\r
279 }\r
280 \r
281 void CPropertiesBasic::OnCl() \r
282 {\r
283         Changed(IDC_CL);\r
284 }\r
285 \r
286 void CPropertiesBasic::OnCm() \r
287 {\r
288         Changed(IDC_CM);\r
289 }\r
290 \r
291 void CPropertiesBasic::OnCms5() \r
292 {\r
293         Changed(IDC_CMS5);\r
294 }\r
295 \r
296 void CPropertiesBasic::OnCn() \r
297 {\r
298         Changed(IDC_CN);\r
299 }\r
300 \r
301 void CPropertiesBasic::OnCo() \r
302 {\r
303         Changed(IDC_CO);\r
304         if (IsDlgButtonChecked(IDC_CO) == BST_CHECKED) {\r
305                 CheckDlgButton(IDC_CO2, BST_UNCHECKED);\r
306                 Changed(IDC_CO2);\r
307         }\r
308 }\r
309 \r
310 void CPropertiesBasic::OnCo2() \r
311 {\r
312         Changed(IDC_CO2);\r
313         if (IsDlgButtonChecked(IDC_CO2) == BST_CHECKED) {\r
314                 CheckDlgButton(IDC_CO, BST_UNCHECKED);\r
315                 Changed(IDC_CO);\r
316         }\r
317 }\r
318 \r
319 void CPropertiesBasic::OnCp() \r
320 {\r
321         Changed(IDC_CP);\r
322 }\r
323 \r
324 void CPropertiesBasic::OnCq() \r
325 {\r
326         Changed(IDC_CQ);\r
327 }\r
328 \r
329 void CPropertiesBasic::OnCr() \r
330 {\r
331         Changed(IDC_CR);\r
332 }\r
333 \r
334 void CPropertiesBasic::OnCs() \r
335 {\r
336         Changed(IDC_CS);\r
337 }\r
338 \r
339 void CPropertiesBasic::OnCslash() \r
340 {\r
341         Changed(IDC_CSLASH);\r
342 }\r
343 \r
344 void CPropertiesBasic::OnCspace() \r
345 {\r
346         Changed(IDC_CSPACE);\r
347 }\r
348 \r
349 void CPropertiesBasic::OnCt() \r
350 {\r
351         Changed(IDC_CT);\r
352 }\r
353 \r
354 void CPropertiesBasic::OnCu() \r
355 {\r
356         Changed(IDC_CU);\r
357 }\r
358 \r
359 void CPropertiesBasic::OnCv() \r
360 {\r
361         Changed(IDC_CV);\r
362 }\r
363 \r
364 void CPropertiesBasic::OnCw() \r
365 {\r
366         Changed(IDC_CW);\r
367 }\r
368 \r
369 void CPropertiesBasic::OnCxb() \r
370 {\r
371         Changed(IDC_CXB);\r
372 }\r
373 \r
374 void CPropertiesBasic::OnCxcc() \r
375 {\r
376         Changed(IDC_CXCC);\r
377 }\r
378 \r
379 void CPropertiesBasic::OnCxcf() \r
380 {\r
381         Changed(IDC_CXCF);\r
382 }\r
383 \r
384 void CPropertiesBasic::OnCxcj() \r
385 {\r
386         Changed(IDC_CXCJ);\r
387 }\r
388 \r
389 void CPropertiesBasic::OnCxcp() \r
390 {\r
391         Changed(IDC_CXCP);\r
392 }\r
393 \r
394 void CPropertiesBasic::OnCxcs() \r
395 {\r
396         Changed(IDC_CXCS);\r
397 }\r
398 \r
399 void CPropertiesBasic::OnCxct() \r
400 {\r
401         Changed(IDC_CXCT);\r
402 }\r
403 \r
404 void CPropertiesBasic::OnCxcw() \r
405 {\r
406         Changed(IDC_CXCW);\r
407 }\r
408 \r
409 void CPropertiesBasic::OnCxe() \r
410 {\r
411         Changed(IDC_CXE);\r
412 }\r
413 \r
414 void CPropertiesBasic::OnCxh() \r
415 {\r
416         Changed(IDC_CXH);\r
417 }\r
418 \r
419 void CPropertiesBasic::OnCxk() \r
420 {\r
421         Changed(IDC_CXK);\r
422 }\r
423 \r
424 void CPropertiesBasic::OnCxs0() \r
425 {\r
426         Changed(IDC_CXS0);\r
427 }\r
428 \r
429 void CPropertiesBasic::OnCxs9() \r
430 {\r
431         Changed(IDC_CXS9);\r
432 }\r
433 \r
434 void CPropertiesBasic::OnCxu() \r
435 {\r
436         Changed(IDC_CXU);\r
437 }\r
438 \r
439 void CPropertiesBasic::OnCy() \r
440 {\r
441         Changed(IDC_CY);\r
442 }\r
443 \r
444 void CPropertiesBasic::OnCz() \r
445 {\r
446         Changed(IDC_CZ);\r
447 }\r
448 \r
449 void CPropertiesBasic::OnEscape() \r
450 {\r
451         Changed(IDC_ESCAPE);\r
452 }\r
453 \r
454 void CPropertiesBasic::OnLeftAlt() \r
455 {\r
456         Changed(IDC_LEFT_ALT);\r
457 }\r
458 \r
459 void CPropertiesBasic::OnMb() \r
460 {\r
461         Changed(IDC_MB);\r
462 }\r
463 \r
464 void CPropertiesBasic::OnMd() \r
465 {\r
466         Changed(IDC_MD);\r
467 }\r
468 \r
469 void CPropertiesBasic::OnMf() \r
470 {\r
471         Changed(IDC_MF);\r
472 }\r
473 \r
474 void CPropertiesBasic::OnMi() \r
475 {\r
476         Changed(IDC_MI);\r
477 }\r
478 \r
479 void CPropertiesBasic::OnMs1() \r
480 {\r
481         Changed(IDC_MS1);\r
482 }\r
483 \r
484 void CPropertiesBasic::OnMs5() \r
485 {\r
486         Changed(IDC_MS5);\r
487 }\r
488 \r
489 void CPropertiesBasic::OnMscomma() \r
490 {\r
491         Changed(IDC_MSCOMMA);\r
492 }\r
493 \r
494 void CPropertiesBasic::OnMsperiod() \r
495 {\r
496         Changed(IDC_MSPERIOD);\r
497 }\r
498 \r
499 void CPropertiesBasic::OnMv() \r
500 {\r
501         Changed(IDC_MV);\r
502 }\r
503 \r
504 void CPropertiesBasic::OnMw() \r
505 {\r
506         Changed(IDC_MW);\r
507 }\r
508 \r
509 void CPropertiesBasic::OnMy() \r
510 {\r
511         Changed(IDC_MY);\r
512 }\r
513 \r
514 void CPropertiesBasic::OnRightAlt() \r
515 {\r
516         Changed(IDC_RIGHT_ALT);\r
517 }\r
518 \r
519 void CPropertiesBasic::OnSquareBra() \r
520 {\r
521         Changed(IDC_SQUARE_BRA);\r
522 }\r
523 \r
524 void CPropertiesBasic::Changed(int nObjectID)\r
525 {\r
526         for (int nComID = 0; nComID < MAX_COMMAND; ++nComID) {\r
527                 CString szCommandName = CCommands::GetCommandName(nComID);\r
528                 if (szCommandName.IsEmpty()) {\r
529                         break;\r
530                 }\r
531 \r
532                 for (int i = 0; ; ++i) {\r
533                         if (CCommands::GetDefaultCommandKey(nComID, i) == 0) {\r
534                                 break;\r
535                         }\r
536 \r
537                         int nControlID = CCommands::GetDefaultControlID(nComID, i);\r
538                         if ((nControlID == nObjectID)\r
539                          || ((nObjectID == IDC_CO) && (nControlID == IDC_CO2))\r
540                          || ((nObjectID == IDC_CO2) && (nControlID == IDC_CO))) {\r
541                                 m_bChanged[nComID] = TRUE;\r
542                         }\r
543                 }\r
544         }\r
545 }\r
546 \r
547 BOOL CPropertiesBasic::OnKillActive() \r
548 {\r
549         GetDialogData();\r
550 \r
551         return CPropertyPage::OnKillActive();\r
552 }\r
553 \r
554 void CPropertiesBasic::EnableControl()\r
555 {\r
556         BOOL bEnable = m_pProperties->IsEnableControl();\r
557 \r
558         for (int nComID = 0; nComID < MAX_COMMAND; ++nComID) {\r
559                 CString szCommandName = CCommands::GetCommandName(nComID);\r
560                 if (szCommandName.IsEmpty()) {\r
561                         break;\r
562                 }\r
563 \r
564                 for (int i = 0; ; ++i) {\r
565                         int nKey = CCommands::GetDefaultCommandKey(nComID, i);\r
566                         int nControlID = CCommands::GetDefaultControlID(nComID, i);\r
567                         if (nKey == 0) {\r
568                                 break;\r
569                         }\r
570                         if (GetDlgItem(nControlID)) {\r
571                                 GetDlgItem(nControlID)->EnableWindow(bEnable);\r
572                         }\r
573                 }\r
574         }\r
575 }\r
576 \r
577 BOOL CPropertiesBasic::PreTranslateMessage(MSG* pMsg) \r
578 {\r
579         m_ToolTip.RelayEvent(pMsg);\r
580 \r
581         return CPropertyPage::PreTranslateMessage(pMsg);\r
582 }\r
583 \r
584 BOOL CPropertiesBasic::OnInitDialog() \r
585 {\r
586         CPropertyPage::OnInitDialog();\r
587 \r
588         if (m_ToolTip.Create(this)) {\r
589                 for (int nComID = 0; nComID < MAX_COMMAND; ++nComID) {\r
590                         CString szCommandName = CCommands::GetCommandName(nComID);\r
591                         if (szCommandName.IsEmpty()) {\r
592                                 break;\r
593                         }\r
594 \r
595                         for (int i = 0; ; ++i) {\r
596                                 int nKey = CCommands::GetDefaultCommandKey(nComID, i);\r
597                                 int nControlID = CCommands::GetDefaultControlID(nComID, i);\r
598                                 if (nKey == 0) {\r
599                                         break;\r
600                                 }\r
601                                 if (GetDlgItem(nControlID)) {\r
602                                         m_ToolTip.AddTool(GetDlgItem(nControlID), CString(MAKEINTRESOURCE(CCommands::GetToolTipID(nComID))));\r
603                                 }\r
604                         }\r
605                 }\r
606         }\r
607 \r
608         return TRUE;  // return TRUE unless you set the focus to a control\r
609                       // EXCEPTION: OCX Property Pages should return FALSE\r
610 }\r
611 \r
612 void CPropertiesBasic::OnMdel() \r
613 {\r
614         Changed(IDC_MDEL);\r
615 }\r
616 \r
617 void CPropertiesBasic::OnMf12() \r
618 {\r
619         Changed(IDC_MF12);\r
620 }\r
621 \r
622 void CPropertiesBasic::OnMt() \r
623 {\r
624         Changed(IDC_MT);\r
625 }\r
626 \r
627 void CPropertiesBasic::OnMc() \r
628 {\r
629         Changed(IDC_MC);\r
630 }\r
631 \r
632 void CPropertiesBasic::OnMl() \r
633 {\r
634         Changed(IDC_ML);\r
635 }\r
636 \r
637 void CPropertiesBasic::OnMu() \r
638 {\r
639         Changed(IDC_MU);\r
640 }\r
641 \r
642 void CPropertiesBasic::OnMx() \r
643 {\r
644         Changed(IDC_MX);\r
645 }\r