-//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-// focus.cpp
-
-
-#include "focus.h"
-#include "windowstool.h"
-
-
-///
-static LRESULT CALLBACK WndProc(
- HWND i_hwnd, UINT i_message, WPARAM i_wParam, LPARAM i_lParam)
-{
- switch (i_message)
- {
- case WM_KEYDOWN:
- case WM_SYSKEYDOWN:
- case WM_KEYUP:
- case WM_SYSKEYUP:
- SendMessage(GetParent(i_hwnd), WM_APP_notifyVKey, i_wParam, i_lParam);
- return 0;
- case WM_CHAR:
- case WM_DEADCHAR:
- return 0;
- case WM_LBUTTONDOWN:
- {
- SetFocus(i_hwnd);
- return 0;
- }
- case WM_SETFOCUS:
- {
- RECT rc;
- GetClientRect(i_hwnd, &rc);
- CreateCaret(i_hwnd, reinterpret_cast<HBITMAP>(NULL), 2,
- rcHeight(&rc) / 2);
- ShowCaret(i_hwnd);
- SetCaretPos(rcWidth(&rc) / 2, rcHeight(&rc) / 4);
- SendMessage(GetParent(i_hwnd), WM_APP_notifyFocus,
- TRUE, (LPARAM)i_hwnd);
- return 0;
- }
- case WM_KILLFOCUS:
- {
- HideCaret(i_hwnd);
- DestroyCaret();
- SendMessage(GetParent(i_hwnd), WM_APP_notifyFocus,
- FALSE, (LPARAM)i_hwnd);
- return 0;
- }
- case WM_GETDLGCODE:
- return DLGC_WANTALLKEYS;
- }
- return DefWindowProc(i_hwnd, i_message, i_wParam, i_lParam);
-}
-
-
-ATOM Register_focus()
-{
- WNDCLASS wc;
- wc.style = CS_HREDRAW | CS_VREDRAW;
- wc.lpfnWndProc = WndProc;
- wc.cbClsExtra = 0;
- wc.cbWndExtra = 0;
- wc.hInstance = g_hInst;
- wc.hIcon = NULL;
- wc.hCursor = LoadCursor(NULL, IDC_IBEAM);
- wc.hbrBackground = reinterpret_cast<HBRUSH>(COLOR_WINDOW + 1);
- wc.lpszMenuName = NULL;
- wc.lpszClassName = _T("mayuFocus");
- return RegisterClass(&wc);
-}
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r
+// focus.cpp\r
+\r
+\r
+#include "focus.h"\r
+#include "windowstool.h"\r
+\r
+\r
+///\r
+static LRESULT CALLBACK WndProc(\r
+ HWND i_hwnd, UINT i_message, WPARAM i_wParam, LPARAM i_lParam)\r
+{\r
+ switch (i_message) {\r
+ case WM_KEYDOWN:\r
+ case WM_SYSKEYDOWN:\r
+ case WM_KEYUP:\r
+ case WM_SYSKEYUP:\r
+ SendMessage(GetParent(i_hwnd), WM_APP_notifyVKey, i_wParam, i_lParam);\r
+ return 0;\r
+ case WM_CHAR:\r
+ case WM_DEADCHAR:\r
+ return 0;\r
+ case WM_LBUTTONDOWN: {\r
+ SetFocus(i_hwnd);\r
+ return 0;\r
+ }\r
+ case WM_SETFOCUS: {\r
+ RECT rc;\r
+ GetClientRect(i_hwnd, &rc);\r
+ CreateCaret(i_hwnd, reinterpret_cast<HBITMAP>(NULL), 2,\r
+ rcHeight(&rc) / 2);\r
+ ShowCaret(i_hwnd);\r
+ SetCaretPos(rcWidth(&rc) / 2, rcHeight(&rc) / 4);\r
+ SendMessage(GetParent(i_hwnd), WM_APP_notifyFocus,\r
+ TRUE, (LPARAM)i_hwnd);\r
+ return 0;\r
+ }\r
+ case WM_KILLFOCUS: {\r
+ HideCaret(i_hwnd);\r
+ DestroyCaret();\r
+ SendMessage(GetParent(i_hwnd), WM_APP_notifyFocus,\r
+ FALSE, (LPARAM)i_hwnd);\r
+ return 0;\r
+ }\r
+ case WM_GETDLGCODE:\r
+ return DLGC_WANTALLKEYS;\r
+ }\r
+ return DefWindowProc(i_hwnd, i_message, i_wParam, i_lParam);\r
+}\r
+\r
+\r
+ATOM Register_focus()\r
+{\r
+ WNDCLASS wc;\r
+ wc.style = CS_HREDRAW | CS_VREDRAW;\r
+ wc.lpfnWndProc = WndProc;\r
+ wc.cbClsExtra = 0;\r
+ wc.cbWndExtra = 0;\r
+ wc.hInstance = g_hInst;\r
+ wc.hIcon = NULL;\r
+ wc.hCursor = LoadCursor(NULL, IDC_IBEAM);\r
+ wc.hbrBackground = reinterpret_cast<HBRUSH>(COLOR_WINDOW + 1);\r
+ wc.lpszMenuName = NULL;\r
+ wc.lpszClassName = _T("mayuFocus");\r
+ return RegisterClass(&wc);\r
+}\r