1 // 109Keyboard.cpp : implementation file
\r
6 #include "xkeymacs.h"
\r
7 #include "109Keyboard.h"
\r
10 #define new DEBUG_NEW
\r
12 static char THIS_FILE[] = __FILE__;
\r
15 /////////////////////////////////////////////////////////////////////////////
\r
16 // C109Keyboard dialog
\r
19 C109Keyboard::C109Keyboard(const HKEY_TYPE hkey_type, CWnd *const pParent /*=NULL*/)
\r
20 : CKeyboardLayout(hkey_type, C109Keyboard::IDD, pParent)
\r
22 //{{AFX_DATA_INIT(C109Keyboard)
\r
23 // NOTE: the ClassWizard will add member initialization here
\r
27 void C109Keyboard::DoDataExchange(CDataExchange *const pDX)
\r
29 CDialog::DoDataExchange(pDX);
\r
30 //{{AFX_DATA_MAP(C109Keyboard)
\r
31 // NOTE: the ClassWizard will add DDX and DDV calls here
\r
36 BEGIN_MESSAGE_MAP(C109Keyboard, CDialog)
\r
37 //{{AFX_MSG_MAP(C109Keyboard)
\r
42 /////////////////////////////////////////////////////////////////////////////
\r
43 // C109Keyboard message handlers
\r
45 BOOL C109Keyboard::OnInitDialog()
\r
47 CDialog::OnInitDialog();
\r
49 CString szWindowText;
\r
51 switch (m_HkeyType) {
\r
54 TCHAR szUserName[UNLEN + 1] = {'0'};
\r
55 DWORD nSize = UNLEN + 1;
\r
56 if (GetUserName(szUserName, &nSize)) {
\r
57 szFor.Format(IDS_FOR, szUserName);
\r
59 szFor.LoadString(IDS_FOR_LOGGED_ON_USER);
\r
64 szFor.LoadString(IDS_FOR_ANY_USER);
\r
69 this->GetWindowText(szWindowText);
\r
70 this->SetWindowText(szWindowText + szFor);
\r
72 m_ToolTip.Create(this, TTS_ALWAYSTIP | TTS_NOPREFIX);
\r
73 m_ToolTip.SetMaxTipWidth(0x100); // Enable multiline
\r
75 InitKeyboardLayout();
\r
77 return TRUE; // return TRUE unless you set the focus to a control
\r
78 // EXCEPTION: OCX Property Pages should return FALSE
\r
81 void C109Keyboard::OnOK()
\r
83 if (LostKeyWarning(m_HkeyType) != IDCANCEL) {
\r
84 SaveScanCodeMap(m_HkeyType);
\r
90 void C109Keyboard::OnDestroy()
\r
92 CDialog::OnDestroy();
\r
94 DestroyKeyboardLayout();
\r
97 BOOL C109Keyboard::PreTranslateMessage(MSG *const pMsg)
\r
99 switch (pMsg->message) {
\r
100 case WM_LBUTTONDOWN:
\r
103 m_ToolTip.RelayEvent(pMsg);
\r
107 return CDialog::PreTranslateMessage(pMsg);
\r
110 int C109Keyboard::GetToolTipID(int nToolTipID)
\r
112 switch (nToolTipID) {
\r
113 case IDS_EQUAL: // ^
\r
114 nToolTipID = IDS_CARET;
\r
116 case IDS_SQUARE_BRA: // @
\r
117 nToolTipID = IDS_AT_MARK;
\r
119 case IDS_SQUARE_CKET: // [
\r
120 nToolTipID = IDS_SQUARE_BRA;
\r
122 case IDS_QUOTE: // :
\r
123 nToolTipID = IDS_COLON;
\r
125 case IDS_BACK_QUOTE: // Hankaku/Zenkaku
\r
126 nToolTipID = IDS_HANKAKU;
\r
128 case IDS_BACKSLASH: // ]
\r
129 nToolTipID = IDS_SQUARE_CKET;
\r