Revision: 7525 http://sourceforge.jp/projects/ttssh2/scm/svn/commits/7525 Author: zmatsuo Date: 2019-03-29 01:38:16 +0900 (Fri, 29 Mar 2019) Log Message: ----------- その他の設定ダイアログを高DPI化 Modified Paths: -------------- trunk/teraterm/teraterm/CMakeLists.txt trunk/teraterm/teraterm/addsetting.cpp trunk/teraterm/teraterm/addsetting.h trunk/teraterm/teraterm/vtwin.cpp Added Paths: ----------- trunk/teraterm/common/tmfc.cpp trunk/teraterm/common/tmfc.h trunk/teraterm/common/tmfc_frame.cpp -------------- next part -------------- Added: trunk/teraterm/common/tmfc.cpp =================================================================== --- trunk/teraterm/common/tmfc.cpp (rev 0) +++ trunk/teraterm/common/tmfc.cpp 2019-03-28 16:38:16 UTC (rev 7525) @@ -0,0 +1,807 @@ +/* + * Copyright (C) 2018 TeraTerm Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Tera term Micro Framework class + */ +#include "tmfc.h" + +#include <windowsx.h> +#include <assert.h> +#include <tchar.h> +#include "dlglib.h" +#include "ttlib.h" + +// \x83e\x83\x93\x83v\x83\x8C\x81[\x83g\x82̏\x91\x82\xAB\x8A\xB7\x82\xA6\x82\xF0\x8Ds\x82\xA4 +#define REWRITE_TEMPLATE + +#if (defined(_MSC_VER) && (_MSC_VER <= 1500)) || \ + (__cplusplus <= 199711L) +#define nullptr NULL // C++11,nullptr / > VS2010 +#endif + +TTCWnd::TTCWnd() +{ + m_hWnd = nullptr; + m_hInst = nullptr; + m_hAccel = nullptr; + m_hParentWnd = nullptr; +} + +LRESULT TTCWnd::SendMessage(UINT msg, WPARAM wp, LPARAM lp) +{ + return ::SendMessage(m_hWnd, msg, wp, lp); +} + +HWND TTCWnd::GetDlgItem(int id) +{ + return ::GetDlgItem(m_hWnd, id); +} + +LRESULT TTCWnd::SendDlgItemMessageT(int id, UINT msg, WPARAM wp, LPARAM lp) +{ + return ::SendDlgItemMessage(m_hWnd, id, msg, wp, lp); +} + +#if defined(UNICODE) +LRESULT TTCWnd::SendDlgItemMessageW(int id, UINT msg, WPARAM wp, LPARAM lp) +{ + return ::SendDlgItemMessageW(m_hWnd, id, msg, wp, lp); +} +#endif + +LRESULT TTCWnd::SendDlgItemMessageA(int id, UINT msg, WPARAM wp, LPARAM lp) +{ + return ::SendDlgItemMessageA(m_hWnd, id, msg, wp, lp); +} + +void TTCWnd::GetDlgItemTextT(int id, TCHAR *buf, size_t size) +{ + ::GetDlgItemText(m_hWnd, id, buf, (int)size); +} + +#if defined(UNICODE) +void TTCWnd::GetDlgItemTextW(int id, wchar_t *buf, size_t size) +{ + ::GetDlgItemTextW(m_hWnd, id, buf, (int)size); +} +#endif + +void TTCWnd::GetDlgItemTextA(int id, char *buf, size_t size) +{ + ::GetDlgItemTextA(m_hWnd, id, buf, (int)size); +} + +void TTCWnd::SetDlgItemTextT(int id, const TCHAR *str) +{ + ::SetDlgItemText(m_hWnd, id, str); +} + +#if defined(UNICODE) +void TTCWnd::SetDlgItemTextW(int id, const wchar_t *str) +{ + ::SetDlgItemTextW(m_hWnd, id, str); +} +#endif + +void TTCWnd::SetDlgItemTextA(int id, const char *str) +{ + ::SetDlgItemTextA(m_hWnd, id, str); +} + +void TTCWnd::SetDlgItemNum(int id, LONG Num) +{ + SetDlgNum(m_hWnd, id, Num); +} + +// nCheck BST_UNCHECKED / BST_CHECKED / BST_INDETERMINATE +void TTCWnd::SetCheck(int id, int nCheck) +{ + ::SendMessage(GetDlgItem(id), BM_SETCHECK, nCheck, 0); +} + +UINT TTCWnd::GetCheck(int id) +{ + return ::IsDlgButtonChecked(m_hWnd, id); +} + +void TTCWnd::SetCurSel(int id, int no) +{ + HWND hWnd = GetDlgItem(id); + assert(hWnd != 0); + TCHAR ClassName[32]; + int r = GetClassName(hWnd, ClassName, _countof(ClassName)); + assert(r != 0); (void)r; + UINT msg = + (_tcscmp(ClassName, _T("ListBox")) == 0) ? LB_SETCURSEL : + (_tcscmp(ClassName, _T("ComboBox")) == 0) ? CB_SETCURSEL : 0; + assert(msg != 0); + ::SendMessage(hWnd, msg, no, 0); +} + +int TTCWnd::GetCurSel(int id) +{ + HWND hWnd = GetDlgItem(id); + assert(hWnd != 0); + TCHAR ClassName[32]; + int r = GetClassName(hWnd, ClassName, _countof(ClassName)); + assert(r != 0); (void)r; + UINT msg = + (_tcscmp(ClassName, _T("ListBox")) == 0) ? LB_GETCURSEL : + (_tcscmp(ClassName, _T("ComboBox")) == 0) ? CB_GETCURSEL : 0; + assert(msg != 0); + LRESULT lResult = ::SendMessage(hWnd, msg, 0, 0); + return (int)lResult; +} + +void TTCWnd::EnableDlgItem(int id, BOOL enable) +{ + ::EnableWindow(GetDlgItem(id), enable); +} + +void TTCWnd::SetDlgItemInt(int id, UINT val, BOOL bSigned) +{ + ::SetDlgItemInt(m_hWnd, id, val, bSigned); +} + +UINT TTCWnd::GetDlgItemInt(int id, BOOL* lpTrans, BOOL bSigned) const +{ + return ::GetDlgItemInt(m_hWnd, id, lpTrans, bSigned); +} + +void TTCWnd::ShowWindow(int nCmdShow) +{ + ::ShowWindow(m_hWnd, nCmdShow); +} + +void TTCWnd::SetWindowTextT(const TCHAR *str) +{ + ::SetWindowText(m_hWnd, str); +} + +#if defined(UNICODE) +void TTCWnd::SetWindowTextW(const wchar_t *str) +{ + ::SetWindowTextW(m_hWnd, str); +} +#endif + +void TTCWnd::SetWindowTextA(const char *str) +{ + ::SetWindowTextA(m_hWnd, str); +} + +LONG_PTR TTCWnd::SetWindowLongPtr(int nIndex, LONG_PTR dwNewLong) +{ + return ::SetWindowLongPtr(m_hWnd, nIndex, dwNewLong); +} + +LONG_PTR TTCWnd::GetWindowLongPtr(int nIndex) +{ + return ::GetWindowLongPtr(m_hWnd, nIndex); +} + +void TTCWnd::ModifyStyleCom(int nStyleOffset, + DWORD dwRemove, DWORD dwAdd, UINT nFlags) +{ + const LONG_PTR dwStyle = GetWindowLongPtr(nStyleOffset); + const LONG_PTR add = dwAdd; + const LONG_PTR remove = dwRemove; + const LONG_PTR dwNewStyle = (dwStyle & ~remove) | add; + if (dwStyle != dwNewStyle) { + SetWindowLongPtr(nStyleOffset, dwNewStyle); + } + if (nFlags != 0) + { + SetWindowPos(nullptr, 0, 0, 0, 0, + SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE | nFlags); + } +} + +void TTCWnd::ModifyStyle(DWORD dwRemove, DWORD dwAdd, UINT nFlags) +{ + ModifyStyleCom(GWL_STYLE, dwRemove, dwAdd, nFlags); +} + +void TTCWnd::ModifyStyleEx(DWORD dwRemove, DWORD dwAdd, UINT nFlags) +{ + ModifyStyleCom(GWL_EXSTYLE, dwRemove, dwAdd, nFlags); +} + +int TTCWnd::MessageBoxT(LPCTSTR lpText, LPCTSTR lpCaption, UINT uType) +{ + return ::MessageBox(m_hWnd, lpText, lpCaption, uType); +} + +int TTCWnd::MessageBoxA(const char *lpText, const char *lpCaption, UINT uType) +{ + return ::MessageBoxA(m_hWnd, lpText, lpCaption, uType); +} + +#if defined(UNICODE) +int TTCWnd::MessageBoxW(const wchar_t *lpText, const wchar_t *lpCaption, UINT uType) +{ + return ::MessageBoxW(m_hWnd, lpText, lpCaption, uType); +} +#endif + +BOOL TTCWnd::GetWindowRect(RECT *R) +{ + return ::GetWindowRect(m_hWnd, R); +} + +BOOL TTCWnd::SetWindowPos(HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags) +{ + return ::SetWindowPos(m_hWnd, hWndInsertAfter, X, Y, cx, cy, uFlags); +} + +BOOL TTCWnd::GetClientRect(RECT *R) +{ + return ::GetClientRect(m_hWnd, R); +} + +BOOL TTCWnd::InvalidateRect(RECT *R, BOOL bErase) +{ + return ::InvalidateRect(m_hWnd, R, bErase); +} + +BOOL TTCWnd::EndDialog(int nResult) +{ + return ::EndDialog(m_hWnd, nResult); +} + +void TTCWnd::DestroyWindow() +{ + ::DestroyWindow(m_hWnd); +} + +HDC TTCWnd::BeginPaint(LPPAINTSTRUCT lpPaint) +{ + return ::BeginPaint(m_hWnd, lpPaint); +} + +BOOL TTCWnd::EndPaint(LPPAINTSTRUCT lpPaint) +{ + return ::EndPaint(m_hWnd, lpPaint); +} + +LRESULT TTCWnd::DefWindowProc(UINT msg, WPARAM wParam, LPARAM lParam) +{ + return ::DefWindowProc(m_hWnd, msg, wParam, lParam); +} + +//////////////////////////////////////// + +TTCDialog *TTCDialog::pseudoPtr; + +TTCDialog::TTCDialog() +{ +} + +TTCDialog::~TTCDialog() +{ +} + +/** + * \x83_\x83C\x83A\x83\x8D\x83O\x8F\x89\x8A\xFA\x89\xBB + * @retval TRUE \x8F\x88\x97\x9D\x82\xAA\x8Ds\x82\xED\x82ꂽ(\x8E\x9F\x82̃\x81\x83b\x83Z\x81[\x83W\x8F\x88\x97\x9D\x82͌Ăяo\x82\xB3\x82\xEA\x82Ȃ\xA2) + * @retval FALSE \x8E\x9F\x82̃\x81\x83b\x83Z\x81[\x83W\x8F\x88\x97\x9D\x82͌Ăяo\x82\xB3\x82\xEA\x82\xE9 + * + * \x8E\x9F\x82̃\x81\x83b\x83Z\x81[\x83W\x8F\x88\x97\x9D + * TTCDialog::DlgProc(msg=WM_INITDIALOG) + */ +BOOL TTCDialog::OnInitDialog() +{ + return FALSE; +} + +/** + * OK\x83{\x83^\x83\x93 + * @retval TRUE \x8F\x88\x97\x9D\x82\xAA\x8Ds\x82\xED\x82ꂽ(\x8E\x9F\x82̃\x81\x83b\x83Z\x81[\x83W\x8F\x88\x97\x9D\x82͌Ăяo\x82\xB3\x82\xEA\x82Ȃ\xA2) + * @retval FALSE \x8E\x9F\x82̃\x81\x83b\x83Z\x81[\x83W\x8F\x88\x97\x9D\x82͌Ăяo\x82\xB3\x82\xEA\x82\xE9 + * + * \x8E\x9F\x82̃\x81\x83b\x83Z\x81[\x83W\x8F\x88\x97\x9D + * TTCDialog::OnCommand() + */ +BOOL TTCDialog::OnOK() +{ + EndDialog(IDOK); + return TRUE; +} + +/** + * CANCEL\x83{\x83^\x83\x93 + * @retval TRUE \x8F\x88\x97\x9D\x82\xAA\x8Ds\x82\xED\x82ꂽ(\x8E\x9F\x82̃\x81\x83b\x83Z\x81[\x83W\x8F\x88\x97\x9D\x82͌Ăяo\x82\xB3\x82\xEA\x82Ȃ\xA2) + * @retval FALSE \x8E\x9F\x82̃\x81\x83b\x83Z\x81[\x83W\x8F\x88\x97\x9D\x82͌Ăяo\x82\xB3\x82\xEA\x82\xE9 + * + * \x8E\x9F\x82̃\x81\x83b\x83Z\x81[\x83W\x8F\x88\x97\x9D + * TTCDialog::OnCommand() + */ +BOOL TTCDialog::OnCancel() +{ + EndDialog(IDCANCEL); + return TRUE; +} + +BOOL TTCDialog::OnCommand(WPARAM wp, LPARAM lp) +{ + return FALSE; +} + +/** + * WM_CLOSE\x83\x81\x83b\x83Z\x81[\x83W\x8F\x88\x97\x9D + * @retval TRUE \x8F\x88\x97\x9D\x82\xAA\x8Ds\x82\xED\x82ꂽ(\x8E\x9F\x82̃\x81\x83b\x83Z\x81[\x83W\x8F\x88\x97\x9D\x82͌Ăяo\x82\xB3\x82\xEA\x82Ȃ\xA2) + * @retval FALSE \x8E\x9F\x82̃\x81\x83b\x83Z\x81[\x83W\x8F\x88\x97\x9D\x82͌Ăяo\x82\xB3\x82\xEA\x82\xE9 + * + * \x8E\x9F\x82̃\x81\x83b\x83Z\x81[\x83W\x8F\x88\x97\x9D + * TTCDialog::OnCancel() + */ +BOOL TTCDialog::OnClose() +{ + return FALSE; +} + +/** + * WM_NCDESTROY\x83\x81\x83b\x83Z\x81[\x83W\x8F\x88\x97\x9D + * @retval TRUE \x8F\x88\x97\x9D\x82\xAA\x8Ds\x82\xED\x82ꂽ(\x8E\x9F\x82̃\x81\x83b\x83Z\x81[\x83W\x8F\x88\x97\x9D\x82͌Ăяo\x82\xB3\x82\xEA\x82Ȃ\xA2) + * @retval FALSE \x8E\x9F\x82̃\x81\x83b\x83Z\x81[\x83W\x8F\x88\x97\x9D\x82͌Ăяo\x82\xB3\x82\xEA\x82\xE9 + * + * \x8E\x9F\x82̃\x81\x83b\x83Z\x81[\x83W\x8F\x88\x97\x9D + * TTCDialog::DlgProc() + */ +BOOL TTCDialog::PostNcDestroy() +{ + return FALSE; +} + +/* + * @retval TRUE \x83\x81\x83b\x83Z\x81[\x83W\x82\xF0\x8F\x88\x97\x9D\x82\xB5\x82\xBD\x8E\x9E + * @retval FALSE \x83\x81\x83b\x83Z\x81[\x83W\x82\xF0\x8F\x88\x97\x9D\x82\xB5\x82Ȃ\xA9\x82\xC1\x82\xBD\x8E\x9E + * @retval \x82\xBB\x82̑\xBC \x83\x81\x83b\x83Z\x81[\x83W\x82ɂ\xE6\x82\xC1\x82ĈقȂ邱\x82Ƃ\xAA\x82\xA0\x82\xE9 + */ +LRESULT TTCDialog::DlgProc(UINT msg, WPARAM wp, LPARAM lp) +{ + (void)msg; + (void)wp; + (void)lp; + return (LRESULT)FALSE; +} + +/* + * @retval TRUE \x83\x81\x83b\x83Z\x81[\x83W\x82\xF0\x8F\x88\x97\x9D\x82\xB5\x82\xBD\x8E\x9E + * @retval FALSE \x83\x81\x83b\x83Z\x81[\x83W\x82\xF0\x8F\x88\x97\x9D\x82\xB5\x82Ȃ\xA9\x82\xC1\x82\xBD\x8E\x9E + */ +LRESULT TTCDialog::DlgProcBase(UINT msg, WPARAM wp, LPARAM lp) +{ + BOOL Processed = FALSE; + switch (msg) { + case WM_INITDIALOG: + Processed = OnInitDialog(); + break; + case WM_COMMAND: + { + const WORD wID = GET_WM_COMMAND_ID(wp, lp); + switch (wID) { + case IDOK: + Processed = OnOK(); + //self->DestroyWindow(); + //SetWindowLongPtr(hwndDlg, DWL_MSGRESULT, lResult) + // return TRUE + break; + case IDCANCEL: + Processed = OnCancel(); + break; + } + + if (Processed == FALSE) { + Processed = OnCommand(wp, lp); + } + break; + } + case WM_NCDESTROY: + Processed = PostNcDestroy(); + break; + case WM_CLOSE: + // CLOSE\x83{\x83^\x83\x93\x82\xF0\x89\x9F\x82\xB5\x82\xBD\x8E\x9E\x81A + Processed = OnClose(); + if (Processed == FALSE) { + // \x83I\x81[\x83o\x81[\x83\x89\x83C\x83h\x82\xB3\x82\xEA\x82Ă\xA2\x82Ȃ\xAF\x82\xEA\x82\xCE + // dialog\x82Ȃ\xE7OnCancel()\x82\xAA\x94\xAD\x90\xB6\x82\xB7\x82\xE9 + Processed = OnCancel(); + } + break; + default: + Processed = FALSE; + break; + } + + if (Processed == TRUE) { + // \x8F\x88\x97\x9D\x82\xB5\x82\xBD + return TRUE; + } + + // \x8DŌ\xE3\x82̃\x81\x83b\x83Z\x81[\x83W\x8F\x88\x97\x9D + return DlgProc(msg, wp, lp); +} + +LRESULT TTCDialog::WndProcBase(UINT msg, WPARAM wp, LPARAM lp) +{ + BOOL Processed = FALSE; + switch (msg) { + case WM_INITDIALOG: + Processed = OnInitDialog(); + break; + case WM_COMMAND: + { + const WORD wID = GET_WM_COMMAND_ID(wp, lp); + switch (wID) { + case IDOK: + Processed = OnOK(); + //self->DestroyWindow(); + //SetWindowLongPtr(hwndDlg, DWL_MSGRESULT, lResult) + // return TRUE + break; + case IDCANCEL: + Processed = OnCancel(); + break; + } + + if (Processed == FALSE) { + Processed = OnCommand(wp, lp); + } + break; + } + case WM_NCDESTROY: + Processed = PostNcDestroy(); + break; + case WM_CLOSE: + // CLOSE\x83{\x83^\x83\x93\x82\xF0\x89\x9F\x82\xB5\x82\xBD\x8E\x9E\x81A + Processed = OnClose(); + if (Processed == FALSE) { + // \x83I\x81[\x83o\x81[\x83\x89\x83C\x83h\x82\xB3\x82\xEA\x82Ă\xA2\x82Ȃ\xAF\x82\xEA\x82\xCE + // dialog\x82Ȃ\xE7OnCancel()\x82\xAA\x94\xAD\x90\xB6\x82\xB7\x82\xE9 + Processed = OnCancel(); + } + break; + default: + Processed = FALSE; + break; + } + + if (Processed == TRUE) { + // \x8F\x88\x97\x9D\x82\xB5\x82\xBD + return TRUE; + } + + // DlgProc\x82\xF0\x83I\x81[\x83o\x83\x89\x83C\x83h\x82\xB7\x82\xE9\x82̂ł͂Ȃ\xAD\x81A + // DefWindowProc\x82\xF0\x83I\x81[\x83o\x81[\x83\x89\x83C\x83h\x82\xB7\x82邱\x82\xC6 + return DefWindowProc(msg, wp, lp); +} + +/** + * for modal dialog + */ +INT_PTR TTCDialog::DoModal(HINSTANCE hInstance, HWND hParent, int idd) +{ + pseudoPtr = this; +#if defined(REWRITE_TEMPLATE) + INT_PTR result = + TTDialogBoxParam(hInstance, + MAKEINTRESOURCE(idd), + hParent, + (DLGPROC)&DlgProcStub, (LPARAM)this); +#else + INT_PTR result = + DialogBoxParam(hInstance, + MAKEINTRESOURCE(idd), + hParent, + (DLGPROC)&DlgProcStub, (LPARAM)this); +#endif + pseudoPtr = nullptr; + return result; +} + +/** + * for modeless dialog + */ +BOOL TTCDialog::Create(HINSTANCE hInstance, HWND hParent, int idd) +{ + m_hInst = hInstance; + m_hParentWnd = hParent; +#if defined(REWRITE_TEMPLATE) + DLGTEMPLATE *lpTemplate = TTGetDlgTemplate(hInstance, MAKEINTRESOURCE(idd)); +#else + HRSRC hResource = ::FindResource(hInstance, MAKEINTRESOURCE(idd), RT_DIALOG); + HANDLE hDlgTemplate = ::LoadResource(hInstance, hResource); + DLGTEMPLATE *lpTemplate = (DLGTEMPLATE *)::LockResource(hDlgTemplate); +#endif + DLGPROC dlgproc = (DLGPROC)DlgProcStub; + const wchar_t *dialog_class = TTGetClassName(lpTemplate); + if (dialog_class != nullptr) { + // Modaless Dialog & Dialog application + // WNDCLASS.lpfnWndProc = TTCDialog::WndProcBase + dlgproc = nullptr; + } + pseudoPtr = this; + HWND hWnd = ::CreateDialogIndirectParam( + hInstance, lpTemplate, hParent, + dlgproc, (LPARAM)this); + pseudoPtr = nullptr; + if (hWnd == nullptr) + { +#if defined(_DEBUG) + DWORD e = GetLastError(); +#endif + assert(false); + return FALSE; + } + + m_hParentWnd = hParent; + m_hWnd = hWnd; + m_hInst = hInstance; +// ::EnableWindow(hParent,FALSE); +// ::ShowWindow(hWnd, SW_SHOW); // TODO \x8AO\x82ł\xE2\x82\xE9\x82̂\xAA\x97ǂ\xB3\x82\xBB\x82\xA4 +// ::EnableWindow(m_hWnd,TRUE); + + return TRUE; +} + +/* + * @retval TRUE \x83\x81\x83b\x83Z\x81[\x83W\x82\xF0\x8F\x88\x97\x9D\x82\xB5\x82\xBD\x8E\x9E + * @retval FALSE \x83\x81\x83b\x83Z\x81[\x83W\x82\xF0\x8F\x88\x97\x9D\x82\xB5\x82Ȃ\xA9\x82\xC1\x82\xBD\x8E\x9E + */ +LRESULT CALLBACK TTCDialog::DlgProcStub(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) +{ + TTCDialog *self = (TTCDialog *)::GetWindowLongPtr(hWnd, DWLP_USER); + if (self == nullptr) { + self = pseudoPtr; + self->m_hWnd = hWnd; + if (msg == WM_INITDIALOG) { + ::SetWindowLongPtr(hWnd, DWLP_USER, (LONG_PTR)self); + pseudoPtr = nullptr; + } + } + assert(self != nullptr); + + LRESULT result = self->DlgProcBase(msg, wp, lp); + return result; +} + +/* + * @retval TRUE \x83\x81\x83b\x83Z\x81[\x83W\x82\xF0\x8F\x88\x97\x9D\x82\xB5\x82\xBD\x8E\x9E + * @retval FALSE \x83\x81\x83b\x83Z\x81[\x83W\x82\xF0\x8F\x88\x97\x9D\x82\xB5\x82Ȃ\xA9\x82\xC1\x82\xBD\x8E\x9E + */ +LRESULT CALLBACK TTCDialog::WndProcStub(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) +{ + TTCDialog *self = (TTCDialog *)::GetWindowLongPtr(hWnd, GWLP_USERDATA); + if (self == nullptr) { + assert(pseudoPtr != nullptr); + self = pseudoPtr; + self->m_hWnd = hWnd; + if (msg == WM_CREATE) { + ::SetWindowLongPtr(hWnd, GWLP_USERDATA, (LONG_PTR)self); + pseudoPtr = nullptr; + } + } + assert(self != nullptr); + + return self->WndProcBase(msg, wp, lp); +} + +void TTCDialog::DestroyWindow() +{ + if (m_hWnd != nullptr) { + ::EnableWindow(m_hParentWnd,TRUE); + ::SetFocus(m_hParentWnd); + ::DestroyWindow(m_hWnd); + m_hWnd = nullptr; + } +} + +//////////////////////////////////////// + +// quick hack :-( +static HINSTANCE ghInstance; +static class TTCPropertySheet *gTTCPS; + +TTCPropertyPage::TTCPropertyPage(HINSTANCE inst, int id, TTCPropertySheet *sheet) +{ + memset(&m_psp, 0, sizeof(m_psp)); + m_psp.dwSize = sizeof(m_psp); + m_psp.dwFlags = PSP_DEFAULT; + m_psp.hInstance = inst; + m_psp.pszTemplate = MAKEINTRESOURCE(id); +#if defined(REWRITE_TEMPLATE) + m_psp.dwFlags |= PSP_DLGINDIRECT; + m_psp.pResource = TTGetDlgTemplate(inst, m_psp.pszTemplate); +#endif +// m_psp.pfnDlgProc = (DLGPROC)Proc; + m_psp.pfnDlgProc = Proc; + m_psp.lParam = (LPARAM)this; + + m_pSheet = sheet; +} + +TTCPropertyPage::~TTCPropertyPage() +{ + free((void *)m_psp.pResource); +} + +void TTCPropertyPage::OnInitDialog() +{ +} + +void TTCPropertyPage::OnOK() +{ +} + +BOOL TTCPropertyPage::OnCommand(WPARAM wp, LPARAM lp) +{ + return TRUE; +} + +HBRUSH TTCPropertyPage::OnCtlColor(HDC hDC, HWND hWnd) +{ + return (HBRUSH)::DefWindowProc(m_hWnd, WM_CTLCOLORSTATIC, (WPARAM)hDC, (LPARAM)hWnd); +} + +UINT CALLBACK TTCPropertyPage::PropSheetPageProc(HWND hwnd, UINT uMsg, LPPROPSHEETPAGE ppsp) +{ + return 0; +} + +INT_PTR CALLBACK TTCPropertyPage::Proc(HWND hDlgWnd, UINT msg, WPARAM wp, LPARAM lp) +{ + TTCPropertyPage *self = (TTCPropertyPage *)::GetWindowLongPtr(hDlgWnd, DWLP_USER); + switch (msg) + { + case WM_INITDIALOG: + self = (TTCPropertyPage *)(((PROPSHEETPAGE *)lp)->lParam); + ::SetWindowLongPtr(hDlgWnd, DWLP_USER, (LONG_PTR)self); + self->m_hWnd = hDlgWnd; + self->OnInitDialog(); + break; + case WM_NOTIFY: + { + NMHDR * nmhdr = (NMHDR *)lp; + switch (nmhdr->code) + { + case PSN_APPLY: + self->OnOK(); + break; + default: + break; + } + break; + } + case WM_COMMAND: + self->OnCommand(wp, lp); + break; + case WM_CTLCOLORSTATIC: + return (INT_PTR)self->OnCtlColor((HDC)wp, (HWND)lp); + } + return FALSE; +} + +//////////////////////////////////////// + +TTCPropertySheet::TTCPropertySheet(HINSTANCE hInstance, LPCTSTR pszCaption, HWND hParentWnd) +{ + m_hInst = hInstance; + memset(&m_psh, 0, sizeof(m_psh)); + m_psh.dwSize = sizeof(m_psh); + m_psh.dwFlags = PSH_DEFAULT | PSH_NOAPPLYNOW | PSH_USECALLBACK; // | PSH_MODELESS + if (pszCaption != nullptr) { + m_psh.pszCaption = pszCaption; + //m_psh.dwFlags |= PSH_PROPTITLE; // \x81u\x82̃v\x83\x8D\x83p\x83e\x83B\x81[\x81v\x82\xAA\x92lj\xC1\x82\xB3\x82\xEA\x82\xE9? + } + m_psh.hwndParent = hParentWnd; + m_psh.pfnCallback = PropSheetProc; +} + +TTCPropertySheet::~TTCPropertySheet() +{ +} + +INT_PTR TTCPropertySheet::DoModal() +{ + ghInstance = m_hInst; + gTTCPS = this; + return PropertySheet(&m_psh); + + // \x83\x82\x81[\x83_\x83\x8C\x83X\x82ɂ\xB7\x82\xE9\x82ƃ^\x83u\x82̓\xAE\x82\xAB\x82\xAA\x82\xA8\x82\xA9\x82\xB5\x82\xA2 +#if 0 + // \x83\x82\x81[\x83h\x83\x8C\x83X\x83_\x83C\x83A\x83\x8D\x83O\x83{\x83b\x83N\x83X\x82̏ꍇ\x82̓E\x83B\x83\x93\x83h\x83E\x82̃n\x83\x93\x83h\x83\x8B + m_hWnd = (HWND)::PropertySheet(&m_psh); +// ShowWindow(m_hWnd, SW_SHOW); + +// ::ModifyStyle(m_hWnd, TCS_MULTILINE, TCS_SINGLELINE, 0); + + ModalResult = 0; + HWND hDlgWnd = m_hWnd; + for(;;) { + if (ModalResult != 0) { + break; + } + MSG Msg; + BOOL quit = !::GetMessage(&Msg, nullptr, nullptr, nullptr); + if (quit) { + // QM_QUIT + PostQuitMessage(0); + return IDCANCEL; + } + if ((hDlgWnd == Msg.hwnd) || + ::SendMessage(hDlgWnd, PSM_ISDIALOGMESSAGE, nullptr, (LPARAM)&Msg)) + { + // \x83_\x83C\x83A\x83\x8D\x83O\x88ȊO\x82̏\x88\x97\x9D + ::TranslateMessage(&Msg); + ::DispatchMessage(&Msg); + } + if (!SendMessage(hDlgWnd, PSM_GETCURRENTPAGEHWND, 0, 0)) { + // \x83v\x83\x8D\x83p\x83e\x83B\x81[\x83V\x81[\x83g\x8FI\x97\xB9 + break; + } + } + return ModalResult; +#endif +} + +int CALLBACK TTCPropertySheet::PropSheetProc(HWND hWnd, UINT msg, LPARAM lp) +{ + switch (msg) { + case PSCB_PRECREATE: + { +#if defined(REWRITE_TEMPLATE) + // \x83e\x83\x93\x83v\x83\x8C\x81[\x83g\x82̓\xE0\x97e\x82\xF0\x8F\x91\x82\xAB\x8A\xB7\x82\xA6\x82\xE9 \x8A댯 + // http://home.att.ne.jp/banana/akatsuki/doc/atlwtl/atlwtl15-01/index.html + size_t PrevTemplSize; + size_t NewTemplSize; + DLGTEMPLATE *NewTempl = + TTGetNewDlgTemplate(ghInstance, (DLGTEMPLATE *)lp, + &PrevTemplSize, &NewTemplSize); + NewTempl->style &= ~DS_CONTEXTHELP; // check DLGTEMPLATEEX + memcpy((void *)lp, NewTempl, NewTemplSize); + free(NewTempl); +#endif + break; + } + case PSCB_INITIALIZED: + { + //TTCPropertySheet *self = (TTCPropertySheet *)lp; + TTCPropertySheet *self = gTTCPS; + self->m_hWnd = hWnd; + self->OnInitDialog(); + break; + } + } + return 0; +} + +void TTCPropertySheet::OnInitDialog() +{ +} Added: trunk/teraterm/common/tmfc.h =================================================================== --- trunk/teraterm/common/tmfc.h (rev 0) +++ trunk/teraterm/common/tmfc.h 2019-03-28 16:38:16 UTC (rev 7525) @@ -0,0 +1,186 @@ +/* + * Copyright (C) 2018 TeraTerm Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Tera term Micro Framework class + */ +#pragma once +#include <windows.h> + +class TTCWnd +{ +public: + HWND m_hWnd; + HINSTANCE m_hInst; + HACCEL m_hAccel; + HWND m_hParentWnd; + + TTCWnd(); + void DestroyWindow(); + HWND GetSafeHwnd() const {return m_hWnd;} + HWND GetSafeHwnd() { return m_hWnd; } + HDC BeginPaint(LPPAINTSTRUCT lpPaint); + BOOL EndPaint(LPPAINTSTRUCT lpPaint); + LRESULT SendMessage(UINT msg, WPARAM wp, LPARAM lp); + void ShowWindow(int nCmdShow); + void SetWindowTextT(const TCHAR *str); +#if defined(UNICODE) + void SetWindowTextW(const wchar_t *str); +#endif + void SetWindowTextA(const char *str); + LONG_PTR SetWindowLongPtr(int nIndex, LONG_PTR dwNewLong); + LONG_PTR GetWindowLongPtr(int nIndex); + void ModifyStyle(DWORD dwRemove, DWORD dwAdd, UINT nFlags = 0); + void ModifyStyleEx(DWORD dwRemove, DWORD dwAdd, UINT nFlags = 0); + int MessageBoxT(LPCTSTR lpText, LPCTSTR lpCaption, UINT uType); + int MessageBoxA(const char * lpText, const char *lpCaption, UINT uType); +#if defined(UNICODE) + int MessageBoxW(const wchar_t * lpText, const wchar_t *lpCaption, UINT uType); +#endif + //virtual LRESULT DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam); + LRESULT DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam); + BOOL GetWindowRect(RECT *R); + BOOL SetWindowPos(HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags); + BOOL GetClientRect(RECT *R); + BOOL InvalidateRect(RECT *R, BOOL bErase = TRUE); + BOOL EndDialog(int nResult); + // for controls + HWND GetDlgItem(int id); + LRESULT SendDlgItemMessageT(int id, UINT msg, WPARAM wp, LPARAM lp); +#if defined(UNICODE) + LRESULT SendDlgItemMessageW(int id, UINT msg, WPARAM wp, LPARAM lp); +#endif + LRESULT SendDlgItemMessageA(int id, UINT msg, WPARAM wp, LPARAM lp); + void GetDlgItemTextT(int id, TCHAR *buf, size_t size); +#if defined(UNICODE) + void GetDlgItemTextW(int id, wchar_t *buf, size_t size); +#endif + void GetDlgItemTextA(int id, char *buf, size_t size); + void SetDlgItemTextT(int id, const TCHAR *str); +#if defined(UNICODE) + void SetDlgItemTextW(int id, const wchar_t *str); +#endif + void SetDlgItemTextA(int id, const char *str); + void SetDlgItemNum(int id, LONG Num); + void SetCheck(int id, int nCheck); + UINT GetCheck(int id); + void SetCurSel(int id, int no); + int GetCurSel(int id); + void SetDlgItemInt(int id, UINT val, BOOL bSigned = TRUE); + UINT GetDlgItemInt(int id, BOOL* lpTrans = NULL, BOOL bSigned = TRUE) const; + void EnableDlgItem(int id, BOOL enable); +private: + void ModifyStyleCom(int nStyleOffset, DWORD dwRemove, DWORD dwAdd, UINT nFlags = 0); +}; + +class TTCFrameWnd : public TTCWnd +{ +public: + TTCFrameWnd(); + virtual ~TTCFrameWnd(); + static TTCFrameWnd *pseudoPtr; + static LRESULT CALLBACK ProcStub(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp); + virtual BOOL Create(HINSTANCE hInstance, + LPCTSTR lpszClassName, + LPCTSTR lpszWindowName, + DWORD dwStyle = WS_OVERLAPPEDWINDOW, + const RECT& rect = rectDefault, + HWND pParentWnd = NULL, // != NULL for popups + LPCTSTR lpszMenuName = NULL, + DWORD dwExStyle = 0);//, + //CCreateContext* pContext = NULL); + virtual LRESULT Proc(UINT msg, WPARAM wp, LPARAM lp) = 0; + static const RECT rectDefault; + /// + virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam); + /// +#if 1 + void OnKillFocus(HWND hNewWnd); + void OnDestroy(); + void OnSetFocus(HWND hOldWnd); + void OnSysCommand(UINT nID, LPARAM lParam); + void OnClose(); +#endif + void OnSysKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); + void OnSysKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags); +}; + +class TTCDialog : public TTCWnd +{ +public: + TTCDialog(); + virtual ~TTCDialog(); + BOOL Create(HINSTANCE hInstance, HWND hParent, int idd); + INT_PTR DoModal(HINSTANCE hInstance, HWND hParent, int idd); + void DestroyWindow(); + virtual BOOL OnInitDialog(); + virtual BOOL OnOK(); + virtual BOOL OnCancel(); + virtual BOOL OnCommand(WPARAM wp, LPARAM lp); + virtual BOOL OnClose(); + virtual BOOL PostNcDestroy(); + virtual LRESULT DlgProc(UINT msg, WPARAM wp, LPARAM lp); + + static LRESULT CALLBACK DlgProcStub(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp); + static LRESULT CALLBACK WndProcStub(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp); +private: + + LRESULT DlgProcBase(UINT msg, WPARAM wp, LPARAM lp); + LRESULT WndProcBase(UINT msg, WPARAM wp, LPARAM lp); + static TTCDialog *pseudoPtr; +}; + +class TTCPropertySheet +{ +public: + TTCPropertySheet(HINSTANCE hInstance, LPCTSTR pszCaption, HWND hParentWnd); + virtual ~TTCPropertySheet(); + virtual void OnInitDialog(); + INT_PTR DoModal(); + PROPSHEETHEADER m_psh; + HWND m_hWnd; + static int CALLBACK PropSheetProc(HWND hWnd, UINT msg, LPARAM lParam); + HINSTANCE m_hInst; +}; + +class TTCPropertyPage : public TTCWnd +{ +public: + TTCPropertyPage(HINSTANCE inst, int id, TTCPropertySheet *sheet); + virtual ~TTCPropertyPage(); + virtual void OnInitDialog(); + virtual void OnOK(); + virtual BOOL OnCommand(WPARAM wp, LPARAM lp); + virtual HBRUSH OnCtlColor(HDC hDC, HWND hWnd); + + PROPSHEETPAGE m_psp; + static INT_PTR CALLBACK Proc(HWND hDlgWnd, UINT msg, WPARAM wp, LPARAM lp); + static UINT CALLBACK PropSheetPageProc(HWND hwnd, UINT uMsg, LPPROPSHEETPAGE ppsp); + TTCPropertySheet *m_pSheet; +}; + Added: trunk/teraterm/common/tmfc_frame.cpp =================================================================== --- trunk/teraterm/common/tmfc_frame.cpp (rev 0) +++ trunk/teraterm/common/tmfc_frame.cpp 2019-03-28 16:38:16 UTC (rev 7525) @@ -0,0 +1,132 @@ +/* + * Copyright (C) 2018 TeraTerm Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Tera term Micro Framework class + */ +#include "tmfc.h" +#include "ttlib.h" + +#if (defined(_MSC_VER) && (_MSC_VER <= 1500)) || \ + (__cplusplus <= 199711L) +#define nullptr NULL // C++11,nullptr / > VS2010 +#endif + +const RECT TTCFrameWnd::rectDefault = +{ + CW_USEDEFAULT, CW_USEDEFAULT, +// 2*CW_USEDEFAULT, 2*CW_USEDEFAULTg + 0, 0 +}; + +TTCFrameWnd::TTCFrameWnd() +{ +} + +TTCFrameWnd::~TTCFrameWnd() +{ +} + +BOOL TTCFrameWnd::Create( + HINSTANCE hInstance, + LPCTSTR lpszClassName, + LPCTSTR lpszWindowName, + DWORD dwStyle, + const RECT& rect, + HWND hParentWnd, + LPCTSTR lpszMenuName, + DWORD dwExStyle) +{ + m_hInst = hInstance; + m_hParentWnd = hParentWnd; + pseudoPtr = this; + HWND hWnd = ::CreateWindowEx( + 0, + lpszClassName, + lpszWindowName, + dwStyle, + rect.left, rect.top, + rect.right - rect.left, rect.bottom - rect.top, + hParentWnd, + nullptr, + hInstance, + nullptr); + pseudoPtr = nullptr; + if (hWnd == nullptr) { + OutputDebugPrintf("CreateWindow %d\n", GetLastError()); + return FALSE; + } else { + m_hWnd = hWnd; + SetWindowLongPtr(GWLP_USERDATA, (LONG_PTR)this); + return TRUE; + } +} + +TTCFrameWnd *TTCFrameWnd::pseudoPtr; + +LRESULT TTCFrameWnd::ProcStub(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) +{ + TTCFrameWnd *self; + if (pseudoPtr != nullptr) { + self = pseudoPtr; + self->m_hWnd = hWnd; + } else { + self = (TTCFrameWnd *)::GetWindowLongPtr(hWnd, GWLP_USERDATA); + } + return self->Proc(msg, wp, lp); +} + +BOOL TTCFrameWnd::OnCommand(WPARAM wParam, LPARAM lParam) +{ + return FALSE; +} + +void TTCFrameWnd::OnKillFocus(HWND hNewWnd) +{} + +void TTCFrameWnd::OnDestroy() +{} + +void TTCFrameWnd::OnSetFocus(HWND hOldWnd) +{} + +void TTCFrameWnd::OnSysCommand(UINT nID, LPARAM lParam) +{} + +void TTCFrameWnd::OnSysKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) +{ + DefWindowProc(WM_SYSKEYDOWN, (WPARAM)nChar, MAKELONG(nRepCnt, nFlags)); +} + +void TTCFrameWnd::OnSysKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags) +{ + DefWindowProc(WM_SYSKEYUP, (WPARAM)nChar, MAKELONG(nRepCnt, nFlags)); +} + +void TTCFrameWnd::OnClose() +{} Modified: trunk/teraterm/teraterm/CMakeLists.txt =================================================================== --- trunk/teraterm/teraterm/CMakeLists.txt 2019-03-28 16:09:45 UTC (rev 7524) +++ trunk/teraterm/teraterm/CMakeLists.txt 2019-03-28 16:38:16 UTC (rev 7525) @@ -34,6 +34,9 @@ ../common/compat_w95.h ../common/compat_win.h ../common/compat_win.cpp + ../common/tmfc.cpp + ../common/tmfc.h + ../common/tmfc_frame.cpp ../common/i18n.h ../common/dllutil.cpp ../common/dllutil.h Modified: trunk/teraterm/teraterm/addsetting.cpp =================================================================== --- trunk/teraterm/teraterm/addsetting.cpp 2019-03-28 16:09:45 UTC (rev 7524) +++ trunk/teraterm/teraterm/addsetting.cpp 2019-03-28 16:38:16 UTC (rev 7525) @@ -30,19 +30,28 @@ * Additional settings dialog */ -#include <afxwin.h> -#include <afxdlgs.h> -#include <afxcmn.h> +#include <stdio.h> +#include <tchar.h> +#include <windows.h> #include <commctrl.h> +#include <time.h> +#include <tchar.h> #include "addsetting.h" #include "teraterm.h" #include "tttypes.h" -#include "ttwinman.h" +#include "ttwinman.h" // for ts #include "ttcommon.h" #include "ttftypes.h" +#include "dlglib.h" +#include "compat_win.h" -mouse_cursor_t MouseCursor[] = { +#undef GetDlgItemText +#define GetDlgItemText GetDlgItemTextA +#undef SetDlgItemText +#define SetDlgItemText SetDlgItemTextA + +const mouse_cursor_t MouseCursor[] = { {"ARROW", IDC_ARROW}, {"IBEAM", IDC_IBEAM}, {"CROSS", IDC_CROSS}, @@ -51,475 +60,275 @@ }; #define MOUSE_CURSOR_MAX (sizeof(MouseCursor)/sizeof(MouseCursor[0]) - 1) -// \x96{\x91̂\xCD vtwin.cpp -extern void SetWindowStyle(TTTSet *ts); - - -static void SetupRGBbox(HWND hDlgWnd, int index) +void CVisualPropPageDlg::SetupRGBbox(int index) { - HWND hWnd; BYTE c; - char buf[10]; - hWnd = GetDlgItem(hDlgWnd, IDC_COLOR_RED); c = GetRValue(ts.ANSIColor[index]); - _snprintf_s(buf, sizeof(buf), _TRUNCATE, "%d", c); - SendMessage(hWnd, WM_SETTEXT , 0, (LPARAM)buf); + SetDlgItemNum(IDC_COLOR_RED, c); - hWnd = GetDlgItem(hDlgWnd, IDC_COLOR_GREEN); c = GetGValue(ts.ANSIColor[index]); - _snprintf_s(buf, sizeof(buf), _TRUNCATE, "%d", c); - SendMessage(hWnd, WM_SETTEXT , 0, (LPARAM)buf); + SetDlgItemNum(IDC_COLOR_GREEN, c); - hWnd = GetDlgItem(hDlgWnd, IDC_COLOR_BLUE); c = GetBValue(ts.ANSIColor[index]); - _snprintf_s(buf, sizeof(buf), _TRUNCATE, "%d", c); - SendMessage(hWnd, WM_SETTEXT , 0, (LPARAM)buf); + SetDlgItemNum(IDC_COLOR_BLUE, c); } - - // CGeneralPropPageDlg \x83_\x83C\x83A\x83\x8D\x83O -IMPLEMENT_DYNAMIC(CGeneralPropPageDlg, CPropertyPage) - -CGeneralPropPageDlg::CGeneralPropPageDlg() - : CPropertyPage(CGeneralPropPageDlg::IDD) +CGeneralPropPageDlg::CGeneralPropPageDlg(HINSTANCE inst, TTCPropertySheet *sheet) + : TTCPropertyPage(inst, CGeneralPropPageDlg::IDD, sheet) { + TCHAR UIMsg[MAX_UIMSG]; + get_lang_msgT("DLG_TABSHEET_TITLE_GENERAL", UIMsg, _countof(UIMsg), + _T("General"), ts.UILanguageFile); + m_psp.pszTitle = _tcsdup(UIMsg); + m_psp.dwFlags |= PSP_USETITLE; } CGeneralPropPageDlg::~CGeneralPropPageDlg() { - if (DlgGeneralFont != NULL) { - DeleteObject(DlgGeneralFont); - } + free((void *)m_psp.pszTitle); } -BEGIN_MESSAGE_MAP(CGeneralPropPageDlg, CPropertyPage) -END_MESSAGE_MAP() - // CGeneralPropPageDlg \x83\x81\x83b\x83Z\x81[\x83W \x83n\x83\x93\x83h\x83\x89 -BOOL CGeneralPropPageDlg::OnInitDialog() +void CGeneralPropPageDlg::OnInitDialog() { - char uimsg[MAX_UIMSG]; - char buf[64]; - CButton *btn; + TTCPropertyPage::OnInitDialog(); - CPropertyPage::OnInitDialog(); + static const DlgTextInfo TextInfos[] = { + { IDC_CLICKABLE_URL, "DLG_TAB_GENERAL_CLICKURL" }, + { IDC_DISABLE_SENDBREAK, "DLG_TAB_GENERAL_DISABLESENDBREAK" }, + { IDC_ACCEPT_BROADCAST, "DLG_TAB_GENERAL_ACCEPTBROADCAST" }, + { IDC_MOUSEWHEEL_SCROLL_LINE, "DLG_TAB_GENERAL_MOUSEWHEEL_SCROLL_LINE" }, + { IDC_AUTOSCROLL_ONLY_IN_BOTTOM_LINE, "DLG_TAB_GENERAL_AUTOSCROLL_ONLY_IN_BOTTOM_LINE" }, + { IDC_CLEAR_ON_RESIZE, "DLG_TAB_GENERAL_CLEAR_ON_RESIZE" }, + { IDC_CURSOR_CHANGE_IME, "DLG_TAB_GENERAL_CURSOR_CHANGE_IME" }, + { IDC_LIST_HIDDEN_FONTS, "DLG_TAB_GENERAL_LIST_HIDDEN_FONTS" }, + { IDC_TITLEFMT_GROUP, "DLG_TAB_GENERAL_TITLEFMT_GROUP" }, + { IDC_TITLEFMT_DISPHOSTNAME, "DLG_TAB_GENERAL_TITLEFMT_DISPHOSTNAME" }, + { IDC_TITLEFMT_DISPSESSION, "DLG_TAB_GENERAL_TITLEFMT_DISPSESSION" }, + { IDC_TITLEFMT_DISPVTTEK, "DLG_TAB_GENERAL_TITLEFMT_DISPVTTEK" }, + { IDC_TITLEFMT_SWAPHOSTTITLE, "DLG_TAB_GENERAL_TITLEFMT_SWAPHOSTTITLE" }, + { IDC_TITLEFMT_DISPTCPPORT, "DLG_TAB_GENERAL_TITLEFMT_DISPTCPPORT" }, + { IDC_TITLEFMT_DISPSERIALSPEED, "DLG_TAB_GENERAL_TITLEFMT_DISPSERIALSPEED" } + }; + SetDlgTexts(m_hWnd, TextInfos, _countof(TextInfos), ts.UILanguageFile); - font = (HFONT)SendMessage(WM_GETFONT, 0, 0); - GetObject(font, sizeof(LOGFONT), &logfont); - if (get_lang_font("DLG_TAHOMA_FONT", GetSafeHwnd(), &logfont, &DlgGeneralFont, ts.UILanguageFile)) { - SendDlgItemMessage(IDC_CLICKABLE_URL, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_DISABLE_SENDBREAK, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_ACCEPT_BROADCAST, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0)); // 337: 2007/03/20 - SendDlgItemMessage(IDC_MOUSEWHEEL_SCROLL_LINE, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_SCROLL_LINE, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_AUTOSCROLL_ONLY_IN_BOTTOM_LINE, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_CLEAR_ON_RESIZE, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_CURSOR_CHANGE_IME, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_LIST_HIDDEN_FONTS, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_TITLEFMT_GROUP, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_TITLEFMT_DISPHOSTNAME, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_TITLEFMT_DISPSESSION, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_TITLEFMT_DISPVTTEK, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_TITLEFMT_SWAPHOSTTITLE, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_TITLEFMT_DISPTCPPORT, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_TITLEFMT_DISPSERIALSPEED, WM_SETFONT, (WPARAM)DlgGeneralFont, MAKELPARAM(TRUE,0)); - } - else { - DlgGeneralFont = NULL; - } - - GetDlgItemText(IDC_CLICKABLE_URL, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_GENERAL_CLICKURL", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_CLICKABLE_URL, ts.UIMsg); - GetDlgItemText(IDC_DISABLE_SENDBREAK, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_GENERAL_DISABLESENDBREAK", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_DISABLE_SENDBREAK, ts.UIMsg); - GetDlgItemText(IDC_ACCEPT_BROADCAST, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_GENERAL_ACCEPTBROADCAST", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_ACCEPT_BROADCAST, ts.UIMsg); - GetDlgItemText(IDC_MOUSEWHEEL_SCROLL_LINE, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_GENERAL_MOUSEWHEEL_SCROLL_LINE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_MOUSEWHEEL_SCROLL_LINE, ts.UIMsg); - GetDlgItemText(IDC_AUTOSCROLL_ONLY_IN_BOTTOM_LINE, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_GENERAL_AUTOSCROLL_ONLY_IN_BOTTOM_LINE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_AUTOSCROLL_ONLY_IN_BOTTOM_LINE, ts.UIMsg); - GetDlgItemText(IDC_CLEAR_ON_RESIZE, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_GENERAL_CLEAR_ON_RESIZE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_CLEAR_ON_RESIZE, ts.UIMsg); - GetDlgItemText(IDC_CURSOR_CHANGE_IME, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_GENERAL_CURSOR_CHANGE_IME", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_CURSOR_CHANGE_IME, ts.UIMsg); - GetDlgItemText(IDC_LIST_HIDDEN_FONTS, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_GENERAL_LIST_HIDDEN_FONTS", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_LIST_HIDDEN_FONTS, ts.UIMsg); - - GetDlgItemText(IDC_TITLEFMT_GROUP, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_GENERAL_TITLEFMT_GROUP", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_TITLEFMT_GROUP, ts.UIMsg); - GetDlgItemText(IDC_TITLEFMT_DISPHOSTNAME, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_GENERAL_TITLEFMT_DISPHOSTNAME", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_TITLEFMT_DISPHOSTNAME, ts.UIMsg); - GetDlgItemText(IDC_TITLEFMT_DISPSESSION, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_GENERAL_TITLEFMT_DISPSESSION", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_TITLEFMT_DISPSESSION, ts.UIMsg); - GetDlgItemText(IDC_TITLEFMT_DISPVTTEK, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_GENERAL_TITLEFMT_DISPVTTEK", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_TITLEFMT_DISPVTTEK, ts.UIMsg); - GetDlgItemText(IDC_TITLEFMT_SWAPHOSTTITLE, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_GENERAL_TITLEFMT_SWAPHOSTTITLE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_TITLEFMT_SWAPHOSTTITLE, ts.UIMsg); - GetDlgItemText(IDC_TITLEFMT_DISPTCPPORT, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_GENERAL_TITLEFMT_DISPTCPPORT", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_TITLEFMT_DISPTCPPORT, ts.UIMsg); - GetDlgItemText(IDC_TITLEFMT_DISPSERIALSPEED, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_GENERAL_TITLEFMT_DISPSERIALSPEED", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_TITLEFMT_DISPSERIALSPEED, ts.UIMsg); - // (1)DisableAcceleratorSendBreak - btn = (CButton *)GetDlgItem(IDC_DISABLE_SENDBREAK); - btn->SetCheck(ts.DisableAcceleratorSendBreak); + SetCheck(IDC_DISABLE_SENDBREAK, ts.DisableAcceleratorSendBreak); // (2)EnableClickableUrl - btn = (CButton *)GetDlgItem(IDC_CLICKABLE_URL); - btn->SetCheck(ts.EnableClickableUrl); + SetCheck(IDC_CLICKABLE_URL, ts.EnableClickableUrl); // (3)AcceptBroadcast 337: 2007/03/20 - btn = (CButton *)GetDlgItem(IDC_ACCEPT_BROADCAST); - btn->SetCheck(ts.AcceptBroadcast); + SetCheck(IDC_ACCEPT_BROADCAST, ts.AcceptBroadcast); // (4)IDC_MOUSEWHEEL_SCROLL_LINE - _snprintf_s(buf, sizeof(buf), "%d", ts.MouseWheelScrollLine); - SetDlgItemText(IDC_SCROLL_LINE, buf); + SetDlgItemNum(IDC_SCROLL_LINE, ts.MouseWheelScrollLine); // (5)IDC_AUTOSCROLL_ONLY_IN_BOTTOM_LINE - btn = (CButton *)GetDlgItem(IDC_AUTOSCROLL_ONLY_IN_BOTTOM_LINE); - btn->SetCheck(ts.AutoScrollOnlyInBottomLine); + SetCheck(IDC_AUTOSCROLL_ONLY_IN_BOTTOM_LINE, ts.AutoScrollOnlyInBottomLine); // (6)IDC_CLEAR_ON_RESIZE - btn = (CButton *)GetDlgItem(IDC_CLEAR_ON_RESIZE); - btn->SetCheck((ts.TermFlag & TF_CLEARONRESIZE) != 0); + SetCheck(IDC_CLEAR_ON_RESIZE, (ts.TermFlag & TF_CLEARONRESIZE) != 0); // (7)IDC_CURSOR_CHANGE_IME - btn = (CButton *)GetDlgItem(IDC_CURSOR_CHANGE_IME); - btn->SetCheck((ts.WindowFlag & WF_IMECURSORCHANGE) != 0); + SetCheck(IDC_CURSOR_CHANGE_IME, (ts.WindowFlag & WF_IMECURSORCHANGE) != 0); // (8)IDC_LIST_HIDDEN_FONTS - btn = (CButton *)GetDlgItem(IDC_LIST_HIDDEN_FONTS); - btn->SetCheck(ts.ListHiddenFonts); + SetCheck(IDC_LIST_HIDDEN_FONTS, ts.ListHiddenFonts); // (9) Title Format - btn = (CButton *)GetDlgItem(IDC_TITLEFMT_DISPHOSTNAME); - btn->SetCheck((ts.TitleFormat & 1) != 0); + SetCheck(IDC_TITLEFMT_DISPHOSTNAME, (ts.TitleFormat & 1) != 0); + SetCheck(IDC_TITLEFMT_DISPSESSION, (ts.TitleFormat & (1<<1)) != 0); + SetCheck(IDC_TITLEFMT_DISPVTTEK, (ts.TitleFormat & (1<<2)) != 0); + SetCheck(IDC_TITLEFMT_SWAPHOSTTITLE, (ts.TitleFormat & (1<<3)) != 0); + SetCheck(IDC_TITLEFMT_DISPTCPPORT, (ts.TitleFormat & (1<<4)) != 0); + SetCheck(IDC_TITLEFMT_DISPSERIALSPEED, (ts.TitleFormat & (1<<5)) != 0); - btn = (CButton *)GetDlgItem(IDC_TITLEFMT_DISPSESSION); - btn->SetCheck((ts.TitleFormat & (1<<1)) != 0); - - btn = (CButton *)GetDlgItem(IDC_TITLEFMT_DISPVTTEK); - btn->SetCheck((ts.TitleFormat & (1<<2)) != 0); - - btn = (CButton *)GetDlgItem(IDC_TITLEFMT_SWAPHOSTTITLE); - btn->SetCheck((ts.TitleFormat & (1<<3)) != 0); - - btn = (CButton *)GetDlgItem(IDC_TITLEFMT_DISPTCPPORT); - btn->SetCheck((ts.TitleFormat & (1<<4)) != 0); - - btn = (CButton *)GetDlgItem(IDC_TITLEFMT_DISPSERIALSPEED); - btn->SetCheck((ts.TitleFormat & (1<<5)) != 0); - // \x83_\x83C\x83A\x83\x8D\x83O\x82Ƀt\x83H\x81[\x83J\x83X\x82Ă\xE9 (2004.12.7 yutaka) ::SetFocus(::GetDlgItem(GetSafeHwnd(), IDC_CLICKABLE_URL)); - - return FALSE; } void CGeneralPropPageDlg::OnOK() { - CButton *btn; - char buf[64]; + TCHAR buf[64]; int val; // (1) - btn = (CButton *)GetDlgItem(IDC_DISABLE_SENDBREAK); - ts.DisableAcceleratorSendBreak = btn->GetCheck(); + ts.DisableAcceleratorSendBreak = GetCheck(IDC_DISABLE_SENDBREAK); // (2) - btn = (CButton *)GetDlgItem(IDC_CLICKABLE_URL); - ts.EnableClickableUrl = btn->GetCheck(); + ts.EnableClickableUrl = GetCheck(IDC_CLICKABLE_URL); // (3) 337: 2007/03/20 - btn = (CButton *)GetDlgItem(IDC_ACCEPT_BROADCAST); - ts.AcceptBroadcast = btn->GetCheck(); + ts.AcceptBroadcast = GetCheck(IDC_ACCEPT_BROADCAST); // (4)IDC_MOUSEWHEEL_SCROLL_LINE - GetDlgItemText(IDC_SCROLL_LINE, buf, sizeof(buf)); - val = atoi(buf); + GetDlgItemTextT(IDC_SCROLL_LINE, buf, _countof(buf)); + val = _tstoi(buf); if (val > 0) ts.MouseWheelScrollLine = val; // (5)IDC_AUTOSCROLL_ONLY_IN_BOTTOM_LINE - btn = (CButton *)GetDlgItem(IDC_AUTOSCROLL_ONLY_IN_BOTTOM_LINE); - ts.AutoScrollOnlyInBottomLine = btn->GetCheck(); + ts.AutoScrollOnlyInBottomLine = GetCheck(IDC_AUTOSCROLL_ONLY_IN_BOTTOM_LINE); // (6)IDC_CLEAR_ON_RESIZE - btn = (CButton *)GetDlgItem(IDC_CLEAR_ON_RESIZE); - if (((ts.TermFlag & TF_CLEARONRESIZE) != 0) != btn->GetCheck()) { + if (((ts.TermFlag & TF_CLEARONRESIZE) != 0) != GetCheck(IDC_CLEAR_ON_RESIZE)) { ts.TermFlag ^= TF_CLEARONRESIZE; } // (7)IDC_CURSOR_CHANGE_IME - btn = (CButton *)GetDlgItem(IDC_CURSOR_CHANGE_IME); - if (((ts.WindowFlag & WF_IMECURSORCHANGE) != 0) != btn->GetCheck()) { + if (((ts.WindowFlag & WF_IMECURSORCHANGE) != 0) != GetCheck(IDC_CURSOR_CHANGE_IME)) { ts.WindowFlag ^= WF_IMECURSORCHANGE; } // (8)IDC_LIST_HIDDEN_FONTS - btn = (CButton *)GetDlgItem(IDC_LIST_HIDDEN_FONTS); - ts.ListHiddenFonts = btn->GetCheck(); + ts.ListHiddenFonts = GetCheck(IDC_LIST_HIDDEN_FONTS); // (9) Title Format - btn = (CButton *)GetDlgItem(IDC_TITLEFMT_DISPHOSTNAME); - ts.TitleFormat = (btn->GetCheck() == BST_CHECKED); - btn = (CButton *)GetDlgItem(IDC_TITLEFMT_DISPSESSION); - ts.TitleFormat |= ((btn->GetCheck() == BST_CHECKED) << 1); - btn = (CButton *)GetDlgItem(IDC_TITLEFMT_DISPVTTEK); - ts.TitleFormat |= ((btn->GetCheck() == BST_CHECKED) << 2); - btn = (CButton *)GetDlgItem(IDC_TITLEFMT_SWAPHOSTTITLE); - ts.TitleFormat |= ((btn->GetCheck() == BST_CHECKED) << 3); - btn = (CButton *)GetDlgItem(IDC_TITLEFMT_DISPTCPPORT); - ts.TitleFormat |= ((btn->GetCheck() == BST_CHECKED) << 4); - btn = (CButton *)GetDlgItem(IDC_TITLEFMT_DISPSERIALSPEED); - ts.TitleFormat |= ((btn->GetCheck() == BST_CHECKED) << 5); + ts.TitleFormat = GetCheck(IDC_TITLEFMT_DISPHOSTNAME) == BST_CHECKED; + ts.TitleFormat |= (GetCheck(IDC_TITLEFMT_DISPSESSION) == BST_CHECKED) << 1; + ts.TitleFormat |= (GetCheck(IDC_TITLEFMT_DISPVTTEK) == BST_CHECKED) << 2; + ts.TitleFormat |= (GetCheck(IDC_TITLEFMT_SWAPHOSTTITLE) == BST_CHECKED) << 3; + ts.TitleFormat |= (GetCheck(IDC_TITLEFMT_DISPTCPPORT) == BST_CHECKED) << 4; + ts.TitleFormat |= (GetCheck(IDC_TITLEFMT_DISPSERIALSPEED) == BST_CHECKED) << 5; } - - // CSequencePropPageDlg \x83_\x83C\x83A\x83\x8D\x83O -IMPLEMENT_DYNAMIC(CSequencePropPageDlg, CPropertyPage) - -CSequencePropPageDlg::CSequencePropPageDlg() - : CPropertyPage(CSequencePropPageDlg::IDD) +CSequencePropPageDlg::CSequencePropPageDlg(HINSTANCE inst, TTCPropertySheet *sheet) + : TTCPropertyPage(inst, CSequencePropPageDlg::IDD, sheet) { + TCHAR UIMsg[MAX_UIMSG]; + get_lang_msgT("DLG_TABSHEET_TITLE_SEQUENCE", UIMsg, _countof(UIMsg), + _T("Control Sequence"), ts.UILanguageFile); + m_psp.pszTitle = _tcsdup(UIMsg); + m_psp.dwFlags |= PSP_USETITLE; } CSequencePropPageDlg::~CSequencePropPageDlg() { - if (DlgSequenceFont != NULL) { - DeleteObject(DlgSequenceFont); - } + free((void *)m_psp.pszTitle); } -BEGIN_MESSAGE_MAP(CSequencePropPageDlg, CPropertyPage) -END_MESSAGE_MAP() - // CSequencePropPageDlg \x83\x81\x83b\x83Z\x81[\x83W \x83n\x83\x93\x83h\x83\x89 -BOOL CSequencePropPageDlg::OnInitDialog() +void CSequencePropPageDlg::OnInitDialog() { - char uimsg[MAX_UIMSG]; - CButton *btn, *btn2; - CComboBox *cmb; + TTCPropertyPage::OnInitDialog(); - CPropertyPage::OnInitDialog(); + static const DlgTextInfo TextInfos[] = { + { IDC_ACCEPT_MOUSE_EVENT_TRACKING, "DLG_TAB_SEQUENCE_ACCEPT_MOUSE_EVENT_TRACKING" }, + { IDC_DISABLE_MOUSE_TRACKING_CTRL, "DLG_TAB_SEQUENCE_DISABLE_MOUSE_TRACKING_CTRL" }, + { IDC_ACCEPT_TITLE_CHANGING_LABEL, "DLG_TAB_SEQUENCE_ACCEPT_TITLE_CHANGING" }, - font = (HFONT)SendMessage(WM_GETFONT, 0, 0); - GetObject(font, sizeof(LOGFONT), &logfont); - if (get_lang_font("DLG_TAHOMA_FONT", GetSafeHwnd(), &logfont, &DlgSequenceFont, ts.UILanguageFile)) { - SendDlgItemMessage(IDC_ACCEPT_MOUSE_EVENT_TRACKING, WM_SETFONT, (WPARAM)DlgSequenceFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_DISABLE_MOUSE_TRACKING_CTRL, WM_SETFONT, (WPARAM)DlgSequenceFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_ACCEPT_TITLE_CHANGING_LABEL, WM_SETFONT, (WPARAM)DlgSequenceFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_ACCEPT_TITLE_CHANGING, WM_SETFONT, (WPARAM)DlgSequenceFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_TITLE_REPORT_LABEL, WM_SETFONT, (WPARAM)DlgSequenceFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_TITLE_REPORT, WM_SETFONT, (WPARAM)DlgSequenceFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_WINDOW_CTRL, WM_SETFONT, (WPARAM)DlgSequenceFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_WINDOW_REPORT, WM_SETFONT, (WPARAM)DlgSequenceFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_CURSOR_CTRL_SEQ, WM_SETFONT, (WPARAM)DlgSequenceFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_CLIPBOARD_ACCESS_LABEL, WM_SETFONT, (WPARAM)DlgSequenceFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_CLIPBOARD_ACCESS, WM_SETFONT, (WPARAM)DlgSequenceFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_CLIPBOARD_NOTIFY, WM_SETFONT, (WPARAM)DlgSequenceFont, MAKELPARAM(TRUE,0)); - } - else { - DlgSequenceFont = NULL; - } + { IDC_CURSOR_CTRL_SEQ, "DLG_TAB_SEQUENCE_CURSOR_CTRL" }, + { IDC_WINDOW_CTRL, "DLG_TAB_SEQUENCE_WINDOW_CTRL" }, + { IDC_WINDOW_REPORT, "DLG_TAB_SEQUENCE_WINDOW_REPORT" }, + { IDC_TITLE_REPORT_LABEL, "DLG_TAB_SEQUENCE_TITLE_REPORT" }, - GetDlgItemText(IDC_ACCEPT_MOUSE_EVENT_TRACKING, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_SEQUENCE_ACCEPT_MOUSE_EVENT_TRACKING", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_ACCEPT_MOUSE_EVENT_TRACKING, ts.UIMsg); - GetDlgItemText(IDC_DISABLE_MOUSE_TRACKING_CTRL, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_SEQUENCE_DISABLE_MOUSE_TRACKING_CTRL", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_DISABLE_MOUSE_TRACKING_CTRL, ts.UIMsg); - GetDlgItemText(IDC_ACCEPT_TITLE_CHANGING_LABEL, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_SEQUENCE_ACCEPT_TITLE_CHANGING", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_ACCEPT_TITLE_CHANGING_LABEL, ts.UIMsg); + { IDC_CLIPBOARD_ACCESS_LABEL, "DLG_TAB_SEQUENCE_CLIPBOARD_ACCESS" }, - get_lang_msg("DLG_TAB_SEQUENCE_ACCEPT_TITLE_CHANGING_OFF", ts.UIMsg, sizeof(ts.UIMsg), "off", ts.UILanguageFile); - SendDlgItemMessage(IDC_ACCEPT_TITLE_CHANGING, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg); - get_lang_msg("DLG_TAB_SEQUENCE_ACCEPT_TITLE_CHANGING_OVERWRITE", ts.UIMsg, sizeof(ts.UIMsg), "overwrite", ts.UILanguageFile); - SendDlgItemMessage(IDC_ACCEPT_TITLE_CHANGING, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg); - get_lang_msg("DLG_TAB_SEQUENCE_ACCEPT_TITLE_CHANGING_AHEAD", ts.UIMsg, sizeof(ts.UIMsg), "ahead", ts.UILanguageFile); - SendDlgItemMessage(IDC_ACCEPT_TITLE_CHANGING, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg); - get_lang_msg("DLG_TAB_SEQUENCE_ACCEPT_TITLE_CHANGING_LAST", ts.UIMsg, sizeof(ts.UIMsg), "last", ts.UILanguageFile); - SendDlgItemMessage(IDC_ACCEPT_TITLE_CHANGING, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg); + { IDC_CLIPBOARD_NOTIFY, "DLG_TAB_SEQUENCE_CLIPBOARD_NOTIFY" }, + }; + SetDlgTexts(m_hWnd, TextInfos, _countof(TextInfos), ts.UILanguageFile); - GetDlgItemText(IDC_CURSOR_CTRL_SEQ, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_SEQUENCE_CURSOR_CTRL", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_CURSOR_CTRL_SEQ, ts.UIMsg); - GetDlgItemText(IDC_WINDOW_CTRL, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_SEQUENCE_WINDOW_CTRL", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_WINDOW_CTRL, ts.UIMsg); - GetDlgItemText(IDC_WINDOW_REPORT, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_SEQUENCE_WINDOW_REPORT", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_WINDOW_REPORT, ts.UIMsg); - GetDlgItemText(IDC_TITLE_REPORT_LABEL, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_SEQUENCE_TITLE_REPORT", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_TITLE_REPORT_LABEL, ts.UIMsg); + TCHAR uimsg[MAX_UIMSG]; + get_lang_msgT("DLG_TAB_SEQUENCE_ACCEPT_TITLE_CHANGING_OFF", uimsg, _countof(uimsg), _T("off"), ts.UILanguageFile); + SendDlgItemMessage(IDC_ACCEPT_TITLE_CHANGING, CB_ADDSTRING, 0, (LPARAM)uimsg); + get_lang_msgT("DLG_TAB_SEQUENCE_ACCEPT_TITLE_CHANGING_OVERWRITE", uimsg, _countof(uimsg), _T("overwrite"), ts.UILanguageFile); + SendDlgItemMessage(IDC_ACCEPT_TITLE_CHANGING, CB_ADDSTRING, 0, (LPARAM)uimsg); + get_lang_msgT("DLG_TAB_SEQUENCE_ACCEPT_TITLE_CHANGING_AHEAD", uimsg, _countof(uimsg), _T("ahead"), ts.UILanguageFile); + SendDlgItemMessage(IDC_ACCEPT_TITLE_CHANGING, CB_ADDSTRING, 0, (LPARAM)uimsg); + get_lang_msgT("DLG_TAB_SEQUENCE_ACCEPT_TITLE_CHANGING_LAST", uimsg, _countof(uimsg), _T("last"), ts.UILanguageFile); + SendDlgItemMessage(IDC_ACCEPT_TITLE_CHANGING, CB_ADDSTRING, 0, (LPARAM)uimsg); - get_lang_msg("DLG_TAB_SEQUENCE_TITLE_REPORT_IGNORE", ts.UIMsg, sizeof(ts.UIMsg), "ignore", ts.UILanguageFile); - SendDlgItemMessage(IDC_TITLE_REPORT, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg); - get_lang_msg("DLG_TAB_SEQUENCE_TITLE_REPORT_ACCEPT", ts.UIMsg, sizeof(ts.UIMsg), "accept", ts.UILanguageFile); - SendDlgItemMessage(IDC_TITLE_REPORT, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg); - get_lang_msg("DLG_TAB_SEQUENCE_TITLE_REPORT_EMPTY", ts.UIMsg, sizeof(ts.UIMsg), "empty", ts.UILanguageFile); - SendDlgItemMessage(IDC_TITLE_REPORT, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg); + get_lang_msgT("DLG_TAB_SEQUENCE_TITLE_REPORT_IGNORE", uimsg, _countof(uimsg), _T("ignore"), ts.UILanguageFile); + SendDlgItemMessage(IDC_TITLE_REPORT, CB_ADDSTRING, 0, (LPARAM)uimsg); + get_lang_msgT("DLG_TAB_SEQUENCE_TITLE_REPORT_ACCEPT", uimsg, _countof(uimsg), _T("accept"), ts.UILanguageFile); + SendDlgItemMessage(IDC_TITLE_REPORT, CB_ADDSTRING, 0, (LPARAM)uimsg); + get_lang_msgT("DLG_TAB_SEQUENCE_TITLE_REPORT_EMPTY", uimsg, _countof(uimsg), _T("empty"), ts.UILanguageFile); + SendDlgItemMessage(IDC_TITLE_REPORT, CB_ADDSTRING, 0, (LPARAM)uimsg); - GetDlgItemText(IDC_CLIPBOARD_ACCESS_LABEL, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_SEQUENCE_CLIPBOARD_ACCESS", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_CLIPBOARD_ACCESS_LABEL, ts.UIMsg); + get_lang_msgT("DLG_TAB_SEQUENCE_CLIPBOARD_ACCESS_OFF", uimsg, _countof(uimsg), _T("off"), ts.UILanguageFile); + SendDlgItemMessage(IDC_CLIPBOARD_ACCESS, CB_ADDSTRING, 0, (LPARAM)uimsg); + get_lang_msgT("DLG_TAB_SEQUENCE_CLIPBOARD_ACCESS_WRITE", uimsg, _countof(uimsg), _T("write only"), ts.UILanguageFile); + SendDlgItemMessage(IDC_CLIPBOARD_ACCESS, CB_ADDSTRING, 0, (LPARAM)uimsg); + get_lang_msgT("DLG_TAB_SEQUENCE_CLIPBOARD_ACCESS_READ", uimsg, _countof(uimsg), _T("read only"), ts.UILanguageFile); + SendDlgItemMessage(IDC_CLIPBOARD_ACCESS, CB_ADDSTRING, 0, (LPARAM)uimsg); + get_lang_msgT("DLG_TAB_SEQUENCE_CLIPBOARD_ACCESS_ON", uimsg, _countof(uimsg), _T("read/write"), ts.UILanguageFile); + SendDlgItemMessage(IDC_CLIPBOARD_ACCESS, CB_ADDSTRING, 0, (LPARAM)uimsg); - get_lang_msg("DLG_TAB_SEQUENCE_CLIPBOARD_ACCESS_OFF", ts.UIMsg, sizeof(ts.UIMsg), "off", ts.UILanguageFile); - SendDlgItemMessage(IDC_CLIPBOARD_ACCESS, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg); - get_lang_msg("DLG_TAB_SEQUENCE_CLIPBOARD_ACCESS_WRITE", ts.UIMsg, sizeof(ts.UIMsg), "write only", ts.UILanguageFile); - SendDlgItemMessage(IDC_CLIPBOARD_ACCESS, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg); - get_lang_msg("DLG_TAB_SEQUENCE_CLIPBOARD_ACCESS_READ", ts.UIMsg, sizeof(ts.UIMsg), "read only", ts.UILanguageFile); - SendDlgItemMessage(IDC_CLIPBOARD_ACCESS, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg); - get_lang_msg("DLG_TAB_SEQUENCE_CLIPBOARD_ACCESS_ON", ts.UIMsg, sizeof(ts.UIMsg), "read/write", ts.UILanguageFile); - SendDlgItemMessage(IDC_CLIPBOARD_ACCESS, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg); - - GetDlgItemText(IDC_CLIPBOARD_NOTIFY, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_SEQUENCE_CLIPBOARD_NOTIFY", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_CLIPBOARD_NOTIFY, ts.UIMsg); - // (1)IDC_ACCEPT_MOUSE_EVENT_TRACKING - btn = (CButton *)GetDlgItem(IDC_ACCEPT_MOUSE_EVENT_TRACKING); - btn2 = (CButton *)GetDlgItem(IDC_DISABLE_MOUSE_TRACKING_CTRL); - btn->SetCheck(ts.MouseEventTracking); - if (ts.MouseEventTracking) { - btn2->EnableWindow(TRUE); - } else { - btn2->EnableWindow(FALSE); - } + SetCheck(IDC_ACCEPT_MOUSE_EVENT_TRACKING, ts.MouseEventTracking); + EnableDlgItem(IDC_DISABLE_MOUSE_TRACKING_CTRL, ts.MouseEventTracking ? TRUE : FALSE); // (2)IDC_DISABLE_MOUSE_TRACKING_CTRL - btn2->SetCheck(ts.DisableMouseTrackingByCtrl); + SetCheck(IDC_DISABLE_MOUSE_TRACKING_CTRL, ts.DisableMouseTrackingByCtrl); // (3)IDC_ACCEPT_TITLE_CHANGING - cmb = (CComboBox *)GetDlgItem(IDC_ACCEPT_TITLE_CHANGING); - cmb->SetCurSel(ts.AcceptTitleChangeRequest); + SetCurSel(IDC_ACCEPT_TITLE_CHANGING, ts.AcceptTitleChangeRequest); // (4)IDC_TITLE_REPORT - cmb = (CComboBox *)GetDlgItem(IDC_TITLE_REPORT); - switch (ts.WindowFlag & WF_TITLEREPORT) { - case IdTitleReportIgnore: - cmb->SetCurSel(0); - break; - case IdTitleReportAccept: - cmb->SetCurSel(1); - break; - default: // IdTitleReportEmpty - cmb->SetCurSel(2); - break; - } + SetCurSel(IDC_TITLE_REPORT, + (ts.WindowFlag & WF_TITLEREPORT) == IdTitleReportIgnore ? 0 : + (ts.WindowFlag & WF_TITLEREPORT) == IdTitleReportAccept ? 1 + /*(ts.WindowFlag & WF_TITLEREPORT) == IdTitleReportEmptye ? */ : 2); // (5)IDC_WINDOW_CTRL - btn = (CButton *)GetDlgItem(IDC_WINDOW_CTRL); - btn->SetCheck((ts.WindowFlag & WF_WINDOWCHANGE) != 0); + SetCheck(IDC_WINDOW_CTRL, (ts.WindowFlag & WF_WINDOWCHANGE) != 0); // (6)IDC_WINDOW_REPORT - btn = (CButton *)GetDlgItem(IDC_WINDOW_REPORT); - btn->SetCheck((ts.WindowFlag & WF_WINDOWREPORT) != 0); + SetCheck(IDC_WINDOW_REPORT, (ts.WindowFlag & WF_WINDOWREPORT) != 0); // (7)IDC_CURSOR_CTRL_SEQ - btn = (CButton *)GetDlgItem(IDC_CURSOR_CTRL_SEQ); - btn->SetCheck((ts.WindowFlag & WF_CURSORCHANGE) != 0); + SetCheck(IDC_CURSOR_CTRL_SEQ, (ts.WindowFlag & WF_CURSORCHANGE) != 0); // (8)IDC_CLIPBOARD_ACCESS - cmb = (CComboBox *)GetDlgItem(IDC_CLIPBOARD_ACCESS); - switch (ts.CtrlFlag & CSF_CBRW) { - case CSF_CBRW: - cmb->SetCurSel(3); - break; - case CSF_CBREAD: - cmb->SetCurSel(2); - break; - case CSF_CBWRITE: - cmb->SetCurSel(1); - break; - default: // off - cmb->SetCurSel(0); - break; - } + SetCurSel(IDC_CLIPBOARD_ACCESS, + (ts.CtrlFlag & CSF_CBRW) == CSF_CBRW ? 3 : + (ts.CtrlFlag & CSF_CBRW) == CSF_CBREAD ? 2 : + (ts.CtrlFlag & CSF_CBRW) == CSF_CBWRITE ? 1 : + 0); // off // (9)IDC_CLIPBOARD_NOTIFY - btn = (CButton *)GetDlgItem(IDC_CLIPBOARD_NOTIFY); - btn->SetCheck(ts.NotifyClipboardAccess); - if (HasBalloonTipSupport()) { - btn->EnableWindow(TRUE); - } - else { - btn->EnableWindow(FALSE); - } + SetCheck(IDC_CLIPBOARD_NOTIFY, ts.NotifyClipboardAccess); + EnableDlgItem(IDC_CLIPBOARD_NOTIFY, HasBalloonTipSupport() ? TRUE : FALSE); // \x83_\x83C\x83A\x83\x8D\x83O\x82Ƀt\x83H\x81[\x83J\x83X\x82Ă\xE9 (2004.12.7 yutaka) ::SetFocus(::GetDlgItem(GetSafeHwnd(), IDC_ACCEPT_MOUSE_EVENT_TRACKING)); - - return FALSE; } BOOL CSequencePropPageDlg::OnCommand(WPARAM wParam, LPARAM lParam) { - CButton *btn, *btn2; - switch (wParam) { case IDC_ACCEPT_MOUSE_EVENT_TRACKING | (BN_CLICKED << 16): - btn = (CButton *)GetDlgItem(IDC_ACCEPT_MOUSE_EVENT_TRACKING); - btn2 = (CButton *)GetDlgItem(IDC_DISABLE_MOUSE_TRACKING_CTRL); - if (btn->GetCheck()) { - btn2->EnableWindow(TRUE); - } else { - btn2->EnableWindow(FALSE); - } + EnableDlgItem(IDC_DISABLE_MOUSE_TRACKING_CTRL, + GetCheck(IDC_ACCEPT_MOUSE_EVENT_TRACKING) ? TRUE : FALSE); return TRUE; } - return CPropertyPage::OnCommand(wParam, lParam); + return TTCPropertyPage::OnCommand(wParam, lParam); } void CSequencePropPageDlg::OnOK() { - CButton *btn; - CComboBox *cmb; - int sel; - // (1)IDC_ACCEPT_MOUSE_EVENT_TRACKING - btn = (CButton *)GetDlgItem(IDC_ACCEPT_MOUSE_EVENT_TRACKING); - ts.MouseEventTracking = btn->GetCheck(); + ts.MouseEventTracking = GetCheck(IDC_ACCEPT_MOUSE_EVENT_TRACKING); // (2)IDC_DISABLE_MOUSE_TRACKING_CTRL - btn = (CButton *)GetDlgItem(IDC_DISABLE_MOUSE_TRACKING_CTRL); - ts.DisableMouseTrackingByCtrl = btn->GetCheck(); + ts.DisableMouseTrackingByCtrl = GetCheck(IDC_DISABLE_MOUSE_TRACKING_CTRL); // (3)IDC_ACCEPT_TITLE_CHANGING - cmb = (CComboBox *)GetDlgItem(IDC_ACCEPT_TITLE_CHANGING); - sel = cmb->GetCurSel(); + int sel = GetCurSel(IDC_ACCEPT_TITLE_CHANGING); if (0 <= sel && sel <= IdTitleChangeRequestMax) { ts.AcceptTitleChangeRequest = sel; } // (4)IDC_TITLE_REPORT - cmb = (CComboBox *)GetDlgItem(IDC_TITLE_REPORT); - switch (cmb->GetCurSel()) { + switch (GetCurSel(IDC_TITLE_REPORT)) { case 0: ts.WindowFlag &= ~WF_TITLEREPORT; break; @@ -535,26 +344,22 @@ } // (5)IDC_WINDOW_CTRL - btn = (CButton *)GetDlgItem(IDC_WINDOW_CTRL); - if (((ts.WindowFlag & WF_WINDOWCHANGE) != 0) != btn->GetCheck()) { + if (((ts.WindowFlag & WF_WINDOWCHANGE) != 0) != GetCheck(IDC_WINDOW_CTRL)) { ts.WindowFlag ^= WF_WINDOWCHANGE; } // (6)IDC_WINDOW_REPORT - btn = (CButton *)GetDlgItem(IDC_WINDOW_REPORT); - if (((ts.WindowFlag & WF_WINDOWREPORT) != 0) != btn->GetCheck()) { + if (((ts.WindowFlag & WF_WINDOWREPORT) != 0) != GetCheck(IDC_WINDOW_REPORT)) { ts.WindowFlag ^= WF_WINDOWREPORT; } // (7)IDC_CURSOR_CTRL_SEQ - btn = (CButton *)GetDlgItem(IDC_CURSOR_CTRL_SEQ); - if (((ts.WindowFlag & WF_CURSORCHANGE) != 0) != btn->GetCheck()) { + if (((ts.WindowFlag & WF_CURSORCHANGE) != 0) != GetCheck(IDC_CURSOR_CTRL_SEQ)) { ts.WindowFlag ^= WF_CURSORCHANGE; } // (8)IDC_CLIPBOARD_ACCESS - cmb = (CComboBox *)GetDlgItem(IDC_CLIPBOARD_ACCESS); - switch (cmb->GetCurSel()) { + switch (GetCurSel(IDC_CLIPBOARD_ACCESS)) { case 0: // off ts.CtrlFlag &= ~CSF_CBRW; break; @@ -574,202 +379,127 @@ } // (9)IDC_CLIPBOARD_ACCESS - btn = (CButton *)GetDlgItem(IDC_CLIPBOARD_NOTIFY); - ts.NotifyClipboardAccess = btn->GetCheck(); + ts.NotifyClipboardAccess = GetCheck(IDC_CLIPBOARD_NOTIFY); } - // CCopypastePropPageDlg \x83_\x83C\x83A\x83\x8D\x83O -IMPLEMENT_DYNAMIC(CCopypastePropPageDlg, CPropertyPage) - -CCopypastePropPageDlg::CCopypastePropPageDlg() - : CPropertyPage(CCopypastePropPageDlg::IDD) +CCopypastePropPageDlg::CCopypastePropPageDlg(HINSTANCE inst, TTCPropertySheet *sheet) + : TTCPropertyPage(inst, CCopypastePropPageDlg::IDD, sheet) { + TCHAR UIMsg[MAX_UIMSG]; + get_lang_msgT("DLG_TABSHEET_TITLE_COPYPASTE", UIMsg, _countof(UIMsg), + _T("Copy and Paste"), ts.UILanguageFile); + m_psp.pszTitle = _tcsdup(UIMsg); + m_psp.dwFlags |= PSP_USETITLE; } CCopypastePropPageDlg::~CCopypastePropPageDlg() { - if (DlgCopypasteFont != NULL) { - DeleteObject(DlgCopypasteFont); - } + free((void *)m_psp.pszTitle); } -BEGIN_MESSAGE_MAP(CCopypastePropPageDlg, CPropertyPage) -END_MESSAGE_MAP() - // CCopypastePropPageDlg \x83\x81\x83b\x83Z\x81[\x83W \x83n\x83\x93\x83h\x83\x89 -BOOL CCopypastePropPageDlg::OnInitDialog() +void CCopypastePropPageDlg::OnInitDialog() { - char uimsg[MAX_UIMSG]; - CButton *btn, *btn2; - CEdit *edit; - char buf[64]; + TTCPropertyPage::OnInitDialog(); - CPropertyPage::OnInitDialog(); + static const DlgTextInfo TextInfos[] = { + { IDC_LINECOPY, "DLG_TAB_COPYPASTE_CONTINUE" }, + { IDC_DISABLE_PASTE_RBUTTON, "DLG_TAB_COPYPASTE_MOUSEPASTE" }, + { IDC_CONFIRM_PASTE_RBUTTON, "DLG_TAB_COPYPASTE_CONFIRMPASTE" }, + { IDC_DISABLE_PASTE_MBUTTON, "DLG_TAB_COPYPASTE_MOUSEPASTEM" }, + { IDC_SELECT_LBUTTON, "DLG_TAB_COPYPASTE_SELECTLBUTTON" }, + { IDC_TRIMNLCHAR, "DLG_TAB_COPYPASTE_TRIM_TRAILING_NL" }, + { IDC_NORMALIZE_LINEBREAK, "DLG_TAB_COPYPASTE_NORMALIZE_LINEBREAK" }, + { IDC_CONFIRM_CHANGE_PASTE, "DLG_TAB_COPYPASTE_CONFIRM_CHANGE_PASTE" }, + { IDC_CONFIRM_STRING_FILE_LABEL, "DLG_TAB_COPYPASTE_STRINGFILE" }, + { IDC_DELIMITER, "DLG_TAB_COPYPASTE_DELIMITER" }, + { IDC_PASTEDELAY_LABEL, "DLG_TAB_COPYPASTE_PASTEDELAY" }, + { IDC_PASTEDELAY_LABEL2, "DLG_TAB_COPYPASTE_PASTEDELAY2" } + }; + SetDlgTexts(m_hWnd, TextInfos, _countof(TextInfos), ts.UILanguageFile); - font = (HFONT)SendMessage(WM_GETFONT, 0, 0); - GetObject(font, sizeof(LOGFONT), &logfont); - if (get_lang_font("DLG_TAHOMA_FONT", GetSafeHwnd(), &logfont, &DlgCopypasteFont, ts.UILanguageFile)) { - SendDlgItemMessage(IDC_LINECOPY, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_DISABLE_PASTE_RBUTTON, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_CONFIRM_PASTE_RBUTTON, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_DISABLE_PASTE_MBUTTON, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_SELECT_LBUTTON, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_TRIMNLCHAR, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_NORMALIZE_LINEBREAK, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_CONFIRM_CHANGE_PASTE, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_CONFIRM_STRING_FILE_LABEL, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_CONFIRM_STRING_FILE, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_CONFIRM_STRING_FILE_PATH, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_DELIMITER, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_DELIM_LIST, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_PASTEDELAY_LABEL, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_PASTEDELAY_EDIT, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_PASTEDELAY_LABEL2, WM_SETFONT, (WPARAM)DlgCopypasteFont, MAKELPARAM(TRUE,0)); - } - else { - DlgCopypasteFont = NULL; - } - - GetDlgItemText(IDC_LINECOPY, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_COPYPASTE_CONTINUE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_LINECOPY, ts.UIMsg); - GetDlgItemText(IDC_DISABLE_PASTE_RBUTTON, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_COPYPASTE_MOUSEPASTE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_DISABLE_PASTE_RBUTTON, ts.UIMsg); - GetDlgItemText(IDC_CONFIRM_PASTE_RBUTTON, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_COPYPASTE_CONFIRMPASTE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_CONFIRM_PASTE_RBUTTON, ts.UIMsg); - GetDlgItemText(IDC_DISABLE_PASTE_MBUTTON, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_COPYPASTE_MOUSEPASTEM", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_DISABLE_PASTE_MBUTTON, ts.UIMsg); - GetDlgItemText(IDC_SELECT_LBUTTON, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_COPYPASTE_SELECTLBUTTON", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_SELECT_LBUTTON, ts.UIMsg); - GetDlgItemText(IDC_TRIMNLCHAR, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_COPYPASTE_TRIM_TRAILING_NL", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_TRIMNLCHAR, ts.UIMsg); - GetDlgItemText(IDC_NORMALIZE_LINEBREAK, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_COPYPASTE_NORMALIZE_LINEBREAK", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_NORMALIZE_LINEBREAK, ts.UIMsg); - GetDlgItemText(IDC_CONFIRM_CHANGE_PASTE, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_COPYPASTE_CONFIRM_CHANGE_PASTE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_CONFIRM_CHANGE_PASTE, ts.UIMsg); - GetDlgItemText(IDC_CONFIRM_STRING_FILE_LABEL, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_COPYPASTE_STRINGFILE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_CONFIRM_STRING_FILE_LABEL, ts.UIMsg); - GetDlgItemText(IDC_DELIMITER, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_COPYPASTE_DELIMITER", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_DELIMITER, ts.UIMsg); - GetDlgItemText(IDC_PASTEDELAY_LABEL, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_COPYPASTE_PASTEDELAY", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_PASTEDELAY_LABEL, ts.UIMsg); - GetDlgItemText(IDC_PASTEDELAY_LABEL2, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_COPYPASTE_PASTEDELAY2", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_PASTEDELAY_LABEL2, ts.UIMsg); - // (1)Enable continued-line copy - btn = (CButton *)GetDlgItem(IDC_LINECOPY); - btn->SetCheck(ts.EnableContinuedLineCopy); + SetCheck(IDC_LINECOPY, ts.EnableContinuedLineCopy); // (2)DisablePasteMouseRButton - btn = (CButton *)GetDlgItem(IDC_DISABLE_PASTE_RBUTTON); - btn2 = (CButton *)GetDlgItem(IDC_CONFIRM_PASTE_RBUTTON); if (ts.PasteFlag & CPF_DISABLE_RBUTTON) { - btn->SetCheck(BST_CHECKED); - btn2->EnableWindow(FALSE); + SetCheck(IDC_DISABLE_PASTE_RBUTTON, BST_CHECKED); + EnableDlgItem(IDC_CONFIRM_PASTE_RBUTTON, FALSE); } else { - btn->SetCheck(BST_UNCHECKED); - btn2->EnableWindow(TRUE); + SetCheck(IDC_DISABLE_PASTE_RBUTTON, BST_UNCHECKED); + EnableDlgItem(IDC_CONFIRM_PASTE_RBUTTON, TRUE); } // (3)ConfirmPasteMouseRButton - btn2->SetCheck((ts.PasteFlag & CPF_CONFIRM_RBUTTON)?BST_CHECKED:BST_UNCHECKED); + SetCheck(IDC_CONFIRM_PASTE_RBUTTON, (ts.PasteFlag & CPF_CONFIRM_RBUTTON)?BST_CHECKED:BST_UNCHECKED); // (4)DisablePasteMouseMButton - btn = (CButton *)GetDlgItem(IDC_DISABLE_PASTE_MBUTTON); - btn->SetCheck((ts.PasteFlag & CPF_DISABLE_MBUTTON)?BST_CHECKED:BST_UNCHECKED); + SetCheck(IDC_DISABLE_PASTE_MBUTTON, (ts.PasteFlag & CPF_DISABLE_MBUTTON)?BST_CHECKED:BST_UNCHECKED); // (5)SelectOnlyByLButton - btn = (CButton *)GetDlgItem(IDC_SELECT_LBUTTON); - btn->SetCheck(ts.SelectOnlyByLButton); + SetCheck(IDC_SELECT_LBUTTON, ts.SelectOnlyByLButton); // (6)TrimTrailingNLonPaste - btn = (CButton *)GetDlgItem(IDC_TRIMNLCHAR); - btn->SetCheck((ts.PasteFlag & CPF_TRIM_TRAILING_NL)?BST_CHECKED:BST_UNCHECKED); + SetCheck(IDC_TRIMNLCHAR, (ts.PasteFlag & CPF_TRIM_TRAILING_NL)?BST_CHECKED:BST_UNCHECKED); // (7)NormalizeLineBreak - btn = (CButton *)GetDlgItem(IDC_NORMALIZE_LINEBREAK); - btn->SetCheck((ts.PasteFlag & CPF_NORMALIZE_LINEBREAK)?BST_CHECKED:BST_UNCHECKED); + SetCheck(IDC_NORMALIZE_LINEBREAK, (ts.PasteFlag & CPF_NORMALIZE_LINEBREAK)?BST_CHECKED:BST_UNCHECKED); // (8)ConfirmChangePaste - btn = (CButton *)GetDlgItem(IDC_CONFIRM_CHANGE_PASTE); - btn->SetCheck((ts.PasteFlag & CPF_CONFIRM_CHANGEPASTE)?BST_CHECKED:BST_UNCHECKED); + SetCheck(IDC_CONFIRM_CHANGE_PASTE, (ts.PasteFlag & CPF_CONFIRM_CHANGEPASTE)?BST_CHECKED:BST_UNCHECKED); // \x83t\x83@\x83C\x83\x8B\x83p\x83X - SetDlgItemText(IDC_CONFIRM_STRING_FILE, ts.ConfirmChangePasteStringFile); - edit = (CEdit *)GetDlgItem(IDC_CONFIRM_STRING_FILE); - btn = (CButton *)GetDlgItem(IDC_CONFIRM_STRING_FILE_PATH); + SetDlgItemTextA(IDC_CONFIRM_STRING_FILE, ts.ConfirmChangePasteStringFile); if (ts.PasteFlag & CPF_CONFIRM_CHANGEPASTE) { - edit->EnableWindow(TRUE); - btn->EnableWindow(TRUE); + EnableDlgItem(IDC_CONFIRM_STRING_FILE, TRUE); + EnableDlgItem(IDC_CONFIRM_STRING_FILE_PATH, TRUE); } else { - edit->EnableWindow(FALSE); - btn->EnableWindow(FALSE); + EnableDlgItem(IDC_CONFIRM_STRING_FILE, FALSE); + EnableDlgItem(IDC_CONFIRM_STRING_FILE_PATH, FALSE); } // (9)delimiter characters - SetDlgItemText(IDC_DELIM_LIST, ts.DelimList); + SetDlgItemTextA(IDC_DELIM_LIST, ts.DelimList); // (10)PasteDelayPerLine + char buf[64]; _snprintf_s(buf, sizeof(buf), "%d", ts.PasteDelayPerLine); - SetDlgItemText(IDC_PASTEDELAY_EDIT, buf); + SetDlgItemNum(IDC_PASTEDELAY_EDIT, ts.PasteDelayPerLine); // \x83_\x83C\x83A\x83\x8D\x83O\x82Ƀt\x83H\x81[\x83J\x83X\x82Ă\xE9 ::SetFocus(::GetDlgItem(GetSafeHwnd(), IDC_LINECOPY)); - - return FALSE; } BOOL CCopypastePropPageDlg::OnCommand(WPARAM wParam, LPARAM lParam) { - CButton *btn, *btn2; - CEdit *edit; char uimsg[MAX_UIMSG]; switch (wParam) { case IDC_DISABLE_PASTE_RBUTTON | (BN_CLICKED << 16): - btn = (CButton *)GetDlgItem(IDC_DISABLE_PASTE_RBUTTON); - btn2 = (CButton *)GetDlgItem(IDC_CONFIRM_PASTE_RBUTTON); - if (btn->GetCheck()) { - btn2->EnableWindow(FALSE); - } else { - btn2->EnableWindow(TRUE); - } + EnableDlgItem(IDC_CONFIRM_PASTE_RBUTTON, + GetCheck(IDC_DISABLE_PASTE_RBUTTON) ? FALSE : TRUE); return TRUE; case IDC_CONFIRM_CHANGE_PASTE | (BN_CLICKED << 16): - btn2 = (CButton *)GetDlgItem(IDC_CONFIRM_CHANGE_PASTE); - btn = (CButton *)GetDlgItem(IDC_CONFIRM_STRING_FILE_PATH); - edit = (CEdit *)GetDlgItem(IDC_CONFIRM_STRING_FILE); - if (btn2->GetCheck()) { - edit->EnableWindow(TRUE); - btn->EnableWindow(TRUE); + if (GetCheck(IDC_CONFIRM_CHANGE_PASTE)) { + EnableDlgItem(IDC_CONFIRM_STRING_FILE, TRUE); + EnableDlgItem(IDC_CONFIRM_STRING_FILE_PATH, TRUE); } else { - edit->EnableWindow(FALSE); - btn->EnableWindow(FALSE); + EnableDlgItem(IDC_CONFIRM_STRING_FILE, FALSE); + EnableDlgItem(IDC_CONFIRM_STRING_FILE_PATH, FALSE); } return TRUE; case IDC_CONFIRM_STRING_FILE_PATH | (BN_CLICKED << 16): { - OPENFILENAME ofn; + OPENFILENAMEA ofn; - ZeroMemory(&ofn, sizeof(ofn)); - ofn.lStructSize = get_OPENFILENAME_SIZE(); + memset(&ofn, 0, sizeof(ofn)); + ofn.lStructSize = get_OPENFILENAME_SIZEA(); ofn.hwndOwner = GetSafeHwnd(); get_lang_msg("FILEDLG_SELECT_CONFIRM_STRING_APP_FILTER", ts.UIMsg, sizeof(ts.UIMsg), "txt(*.txt)\\0*.txt\\0all(*.*)\\0*.*\\0\\0", ts.UILanguageFile); @@ -780,29 +510,26 @@ "Choose a file including strings for ConfirmChangePaste", ts.UILanguageFile); ofn.lpstrTitle = uimsg; ofn.Flags = OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_FORCESHOWHIDDEN | OFN_HIDEREADONLY; - if (GetOpenFileName(&ofn) != 0) { - SetDlgItemText(IDC_CONFIRM_STRING_FILE, ts.ConfirmChangePasteStringFile); + if (GetOpenFileNameA(&ofn) != 0) { + SetDlgItemTextA(IDC_CONFIRM_STRING_FILE, ts.ConfirmChangePasteStringFile); } } return TRUE; } - return CPropertyPage::OnCommand(wParam, lParam); + return TTCPropertyPage::OnCommand(wParam, lParam); } void CCopypastePropPageDlg::OnOK() { - CButton *btn; char buf[64]; int val; // (1) - btn = (CButton *)GetDlgItem(IDC_LINECOPY); - ts.EnableContinuedLineCopy = btn->GetCheck(); + ts.EnableContinuedLineCopy = GetCheck(IDC_LINECOPY); // (2) - btn = (CButton *)GetDlgItem(IDC_DISABLE_PASTE_RBUTTON); - if (btn->GetCheck()) { + if (GetCheck(IDC_DISABLE_PASTE_RBUTTON)) { ts.PasteFlag |= CPF_DISABLE_RBUTTON; } else { @@ -810,8 +537,7 @@ } // (3) - btn = (CButton *)GetDlgItem(IDC_CONFIRM_PASTE_RBUTTON); - if (btn->GetCheck()) { + if (GetCheck(IDC_CONFIRM_PASTE_RBUTTON)) { ts.PasteFlag |= CPF_CONFIRM_RBUTTON; } else { @@ -819,8 +545,7 @@ } // (4) - btn = (CButton *)GetDlgItem(IDC_DISABLE_PASTE_MBUTTON); - if (btn->GetCheck()) { + if (GetCheck(IDC_DISABLE_PASTE_MBUTTON)) { ts.PasteFlag |= CPF_DISABLE_MBUTTON; } else { @@ -828,12 +553,10 @@ } // (5) - btn = (CButton *)GetDlgItem(IDC_SELECT_LBUTTON); - ts.SelectOnlyByLButton = btn->GetCheck(); + ts.SelectOnlyByLButton = GetCheck(IDC_SELECT_LBUTTON); // (6) - btn = (CButton *)GetDlgItem(IDC_TRIMNLCHAR); - if (btn->GetCheck()) { + if (GetCheck(IDC_TRIMNLCHAR)) { ts.PasteFlag |= CPF_TRIM_TRAILING_NL; } else { @@ -841,8 +564,7 @@ } // (7) - btn = (CButton *)GetDlgItem(IDC_NORMALIZE_LINEBREAK); - if (btn->GetCheck()) { + if (GetCheck(IDC_NORMALIZE_LINEBREAK)) { ts.PasteFlag |= CPF_NORMALIZE_LINEBREAK; } else { @@ -850,340 +572,246 @@ } // (8)IDC_CONFIRM_CHANGE_PASTE - btn = (CButton *)GetDlgItem(IDC_CONFIRM_CHANGE_PASTE); - if (btn->GetCheck()) { + if (GetCheck(IDC_CONFIRM_CHANGE_PASTE)) { ts.PasteFlag |= CPF_CONFIRM_CHANGEPASTE; } else { ts.PasteFlag &= ~CPF_CONFIRM_CHANGEPASTE; } - GetDlgItemText(IDC_CONFIRM_STRING_FILE, ts.ConfirmChangePasteStringFile, sizeof(ts.ConfirmChangePasteStringFile)); + GetDlgItemTextA(IDC_CONFIRM_STRING_FILE, ts.ConfirmChangePasteStringFile, sizeof(ts.ConfirmChangePasteStringFile)); // (9) - GetDlgItemText(IDC_DELIM_LIST, ts.DelimList, sizeof(ts.DelimList)); + GetDlgItemTextA(IDC_DELIM_LIST, ts.DelimList, sizeof(ts.DelimList)); // (10) - GetDlgItemText(IDC_PASTEDELAY_EDIT, buf, sizeof(buf)); + GetDlgItemTextA(IDC_PASTEDELAY_EDIT, buf, sizeof(buf)); val = atoi(buf); - ts.PasteDelayPerLine = min(max(0, val), 5000); + ts.PasteDelayPerLine = + (val < 0) ? 0 : + (val > 5000) ? 5000 : val; } - // CVisualPropPageDlg \x83_\x83C\x83A\x83\x8D\x83O -IMPLEMENT_DYNAMIC(CVisualPropPageDlg, CPropertyPage) - -CVisualPropPageDlg::CVisualPropPageDlg() - : CPropertyPage(CVisualPropPageDlg::IDD) +CVisualPropPageDlg::CVisualPropPageDlg(HINSTANCE inst, TTCPropertySheet *sheet) + : TTCPropertyPage(inst, CVisualPropPageDlg::IDD, sheet) { - + TCHAR UIMsg[MAX_UIMSG]; + get_lang_msgT("DLG_TABSHEET_TITLE_VISUAL", UIMsg, _countof(UIMsg), + _T("Visual"), ts.UILanguageFile); + m_psp.pszTitle = _tcsdup(UIMsg); + m_psp.dwFlags |= PSP_USETITLE; } CVisualPropPageDlg::~CVisualPropPageDlg() { - if (DlgVisualFont != NULL) { - DeleteObject(DlgVisualFont); - } + free((void *)m_psp.pszTitle); } -BEGIN_MESSAGE_MAP(CVisualPropPageDlg, CPropertyPage) -END_MESSAGE_MAP() - // CVisualPropPageDlg \x83\x81\x83b\x83Z\x81[\x83W \x83n\x83\x93\x83h\x83\x89 -BOOL CVisualPropPageDlg::OnInitDialog() +void CVisualPropPageDlg::OnInitDialog() { char buf[MAXPATHLEN]; - char uimsg[MAX_UIMSG]; - CListBox *listbox; - CButton *btn; - CComboBox *cmb; - int i; - CPropertyPage::OnInitDialog(); + TTCPropertyPage::OnInitDialog(); - font = (HFONT)SendMessage(WM_GETFONT, 0, 0); - GetObject(font, sizeof(LOGFONT), &logfont); - if (get_lang_font("DLG_TAHOMA_FONT", GetSafeHwnd(), &logfont, &DlgVisualFont, ts.UILanguageFile)) { - SendDlgItemMessage(IDC_ALPHABLEND, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE, 0)); - SendDlgItemMessage(IDC_ALPHA_BLEND_ACTIVE, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE, 0)); - SendDlgItemMessage(IDC_ALPHA_BLEND_INACTIVE, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE, 0)); - SendDlgItemMessage(IDC_ALPHA_BLEND_ACTIVE_LABEL, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE, 0)); - SendDlgItemMessage(IDC_ALPHA_BLEND_INACTIVE_LABEL, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE, 0)); - SendDlgItemMessage(IDC_ETERM_LOOKFEEL, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_MOUSE, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_MOUSE_CURSOR, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_FONT_QUALITY_LABEL, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_FONT_QUALITY, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_ANSICOLOR, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_ANSI_COLOR, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_RED, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_COLOR_RED, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_GREEN, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_COLOR_GREEN, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_BLUE, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_COLOR_BLUE, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_SAMPLE_COLOR, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_ENABLE_ATTR_COLOR_BOLD, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_ENABLE_ATTR_COLOR_BLINK, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_ENABLE_ATTR_COLOR_REVERSE, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_ENABLE_URL_COLOR, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_ENABLE_ANSI_COLOR, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_URL_UNDERLINE, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_BGIMG_CHECK, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_BGIMG_EDIT, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_BGIMG_BUTTON, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_RESTART, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_BGIMG_BRIGHTNESS, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE, 0)); - SendDlgItemMessage(IDC_EDIT_BGIMG_BRIGHTNESS, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE, 0)); - } - else { - DlgVisualFont = NULL; - } + static const DlgTextInfo TextInfos[] = { + { IDC_ALPHABLEND, "DLG_TAB_VISUAL_ALPHA" }, + { IDC_ALPHA_BLEND_ACTIVE_LABEL, "DLG_TAB_VISUAL_ALPHA_ACTIVE_LABEL" }, + { IDC_ALPHA_BLEND_INACTIVE_LABEL, "DLG_TAB_VISUAL_ALPHA_INACTIVE_LABEL" }, + { IDC_ETERM_LOOKFEEL, "DLG_TAB_VISUAL_ETERM" }, + { IDC_BGIMG_CHECK, "DLG_TAB_VISUAL_BGIMG" }, + { IDC_BGIMG_BRIGHTNESS, "DLG_TAB_VISUAL_BGIMG_BRIGHTNESS" }, + { IDC_MOUSE, "DLG_TAB_VISUAL_MOUSE" }, + { IDC_FONT_QUALITY_LABEL, "DLG_TAB_VISUAL_FONT_QUALITY" }, + { IDC_ANSICOLOR, "DLG_TAB_VISUAL_ANSICOLOR" }, + { IDC_RED, "DLG_TAB_VISUAL_RED" }, + { IDC_GREEN, "DLG_TAB_VISUAL_GREEN" }, + { IDC_BLUE, "DLG_TAB_VISUAL_BLUE" }, + { IDC_ENABLE_ATTR_COLOR_BOLD, "DLG_TAB_VISUAL_BOLD" }, + { IDC_ENABLE_ATTR_COLOR_BLINK, "DLG_TAB_VISUAL_BLINK" }, + { IDC_ENABLE_ATTR_COLOR_REVERSE, "DLG_TAB_VISUAL_REVERSE" }, + { IDC_ENABLE_URL_COLOR, "DLG_TAB_VISUAL_URL" }, + { IDC_ENABLE_ANSI_COLOR, "DLG_TAB_VISUAL_ANSI" }, + { IDC_URL_UNDERLINE, "DLG_TAB_VISUAL_URLUL" }, + { IDC_RESTART, "DLG_TAB_VISUAL_RESTART" }, + }; + SetDlgTexts(m_hWnd, TextInfos, _countof(TextInfos), ts.UILanguageFile); - GetDlgItemText(IDC_ALPHABLEND, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_VISUAL_ALPHA", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_ALPHABLEND, ts.UIMsg); - GetDlgItemText(IDC_ALPHA_BLEND_ACTIVE_LABEL, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_VISUAL_ALPHA_ACTIVE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_ALPHA_BLEND_ACTIVE_LABEL, ts.UIMsg); - GetDlgItemText(IDC_ALPHA_BLEND_INACTIVE_LABEL, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_VISUAL_ALPHA_INACTIVE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_ALPHA_BLEND_INACTIVE_LABEL, ts.UIMsg); - GetDlgItemText(IDC_ETERM_LOOKFEEL, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_VISUAL_ETERM", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_ETERM_LOOKFEEL, ts.UIMsg); - GetDlgItemText(IDC_BGIMG_CHECK, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_VISUAL_BGIMG", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_BGIMG_CHECK, ts.UIMsg); - GetDlgItemText(IDC_BGIMG_BRIGHTNESS, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_VISUAL_BGIMG_BRIGHTNESS", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_BGIMG_BRIGHTNESS, ts.UIMsg); - GetDlgItemText(IDC_MOUSE, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_VISUAL_MOUSE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_MOUSE, ts.UIMsg); - GetDlgItemText(IDC_FONT_QUALITY_LABEL, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_VISUAL_FONT_QUALITY", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_FONT_QUALITY_LABEL, ts.UIMsg); - GetDlgItemText(IDC_ANSICOLOR, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_VISUAL_ANSICOLOR", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_ANSICOLOR, ts.UIMsg); - GetDlgItemText(IDC_RED, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_VISUAL_RED", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_RED, ts.UIMsg); - GetDlgItemText(IDC_GREEN, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_VISUAL_GREEN", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_GREEN, ts.UIMsg); - GetDlgItemText(IDC_BLUE, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_VISUAL_BLUE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_BLUE, ts.UIMsg); - GetDlgItemText(IDC_ENABLE_ATTR_COLOR_BOLD, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_VISUAL_BOLD", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_ENABLE_ATTR_COLOR_BOLD, ts.UIMsg); - GetDlgItemText(IDC_ENABLE_ATTR_COLOR_BLINK, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_VISUAL_BLINK", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_ENABLE_ATTR_COLOR_BLINK, ts.UIMsg); - GetDlgItemText(IDC_ENABLE_ATTR_COLOR_REVERSE, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_VISUAL_REVERSE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_ENABLE_ATTR_COLOR_REVERSE, ts.UIMsg); - GetDlgItemText(IDC_ENABLE_URL_COLOR, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_VISUAL_URL", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_ENABLE_URL_COLOR, ts.UIMsg); - GetDlgItemText(IDC_ENABLE_ANSI_COLOR, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_VISUAL_ANSI", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_ENABLE_ANSI_COLOR, ts.UIMsg); - GetDlgItemText(IDC_URL_UNDERLINE, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_VISUAL_URLUL", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_URL_UNDERLINE, ts.UIMsg); - GetDlgItemText(IDC_RESTART, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_VISUAL_RESTART", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_RESTART, ts.UIMsg); + TCHAR uimsg[MAX_UIMSG]; + get_lang_msgT("DLG_TAB_VISUAL_FONT_QUALITY_DEFAULT", + uimsg, _countof(uimsg), _T("Default"), ts.UILanguageFile); + SendDlgItemMessage(IDC_FONT_QUALITY, CB_ADDSTRING, 0, (LPARAM)uimsg); + get_lang_msgT("DLG_TAB_VISUAL_FONT_QUALITY_NONANTIALIASED", + uimsg, _countof(uimsg), _T("Non-Antialiased"), ts.UILanguageFile); + SendDlgItemMessage(IDC_FONT_QUALITY, CB_ADDSTRING, 0, (LPARAM)uimsg); + get_lang_msgT("DLG_TAB_VISUAL_FONT_QUALITY_ANTIALIASED", + uimsg, _countof(uimsg), _T("Antialiased"), ts.UILanguageFile); + SendDlgItemMessage(IDC_FONT_QUALITY, CB_ADDSTRING, 0, (LPARAM)uimsg); + get_lang_msgT("DLG_TAB_VISUAL_FONT_QUALITY_CLEARTYPE", + uimsg, _countof(uimsg), _T("ClearType"), ts.UILanguageFile); + SendDlgItemMessage(IDC_FONT_QUALITY, CB_ADDSTRING, 0, (LPARAM)uimsg); - get_lang_msg("DLG_TAB_VISUAL_FONT_QUALITY_DEFAULT", ts.UIMsg, sizeof(ts.UIMsg), "Default", ts.UILanguageFile); - SendDlgItemMessage(IDC_FONT_QUALITY, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg); - get_lang_msg("DLG_TAB_VISUAL_FONT_QUALITY_NONANTIALIASED", ts.UIMsg, sizeof(ts.UIMsg), "Non-Antialiased", ts.UILanguageFile); - SendDlgItemMessage(IDC_FONT_QUALITY, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg); - get_lang_msg("DLG_TAB_VISUAL_FONT_QUALITY_ANTIALIASED", ts.UIMsg, sizeof(ts.UIMsg), "Antialiased", ts.UILanguageFile); - SendDlgItemMessage(IDC_FONT_QUALITY, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg); - get_lang_msg("DLG_TAB_VISUAL_FONT_QUALITY_CLEARTYPE", ts.UIMsg, sizeof(ts.UIMsg), "ClearType", ts.UILanguageFile); - SendDlgItemMessage(IDC_FONT_QUALITY, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg); - // (1)AlphaBlend - _snprintf_s(buf, sizeof(buf), _TRUNCATE, "%d", ts.AlphaBlendActive); - SetDlgItemText(IDC_ALPHA_BLEND_ACTIVE, buf); - _snprintf_s(buf, sizeof(buf), _TRUNCATE, "%d", ts.AlphaBlendInactive); - SetDlgItemText(IDC_ALPHA_BLEND_INACTIVE, buf); + SetDlgItemNum(IDC_ALPHA_BLEND_ACTIVE, ts.AlphaBlendActive); + + SetDlgItemNum(IDC_ALPHA_BLEND_INACTIVE, ts.AlphaBlendInactive); + // (2)[BG] BGEnable - btn = (CButton *)GetDlgItem(IDC_ETERM_LOOKFEEL); - btn->SetCheck(ts.EtermLookfeel.BGEnable); + SetCheck(IDC_ETERM_LOOKFEEL, ts.EtermLookfeel.BGEnable); // Eterm look-feel\x82̔w\x8Ci\x89摜\x8Ew\x92\xE8\x81B - SetDlgItemText(IDC_BGIMG_EDIT, ts.BGImageFilePath); + SetDlgItemTextA(IDC_BGIMG_EDIT, ts.BGImageFilePath); _snprintf_s(buf, sizeof(buf), _TRUNCATE, "%d", ts.BGImgBrightness); - SetDlgItemText(IDC_EDIT_BGIMG_BRIGHTNESS, buf); + SetDlgItemNum(IDC_EDIT_BGIMG_BRIGHTNESS, ts.BGImgBrightness); if (ts.EtermLookfeel.BGEnable) { - GetDlgItem(IDC_BGIMG_CHECK)->EnableWindow(TRUE); + EnableDlgItem(IDC_BGIMG_CHECK, TRUE); - btn = (CButton *)GetDlgItem(IDC_BGIMG_CHECK); if (strcmp(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE) == 0) { - btn->SetCheck(BST_CHECKED); - GetDlgItem(IDC_BGIMG_EDIT)->EnableWindow(TRUE); - GetDlgItem(IDC_BGIMG_BUTTON)->EnableWindow(TRUE); + SetCheck(IDC_BGIMG_CHECK, BST_CHECKED); + EnableDlgItem(IDC_BGIMG_EDIT, TRUE); + EnableDlgItem(IDC_BGIMG_BUTTON, TRUE); - GetDlgItem(IDC_BGIMG_BRIGHTNESS)->EnableWindow(TRUE); - GetDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS)->EnableWindow(TRUE); + EnableDlgItem(IDC_BGIMG_BRIGHTNESS, TRUE); + EnableDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS, TRUE); } else { - btn->SetCheck(BST_UNCHECKED); - GetDlgItem(IDC_BGIMG_EDIT)->EnableWindow(FALSE); - GetDlgItem(IDC_BGIMG_BUTTON)->EnableWindow(FALSE); + SetCheck(IDC_BGIMG_CHECK, BST_UNCHECKED); + EnableDlgItem(IDC_BGIMG_EDIT, FALSE); + EnableDlgItem(IDC_BGIMG_BUTTON, FALSE); - GetDlgItem(IDC_BGIMG_BRIGHTNESS)->EnableWindow(FALSE); - GetDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS)->EnableWindow(FALSE); + EnableDlgItem(IDC_BGIMG_BRIGHTNESS, FALSE); + EnableDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS, FALSE); } } else { - GetDlgItem(IDC_BGIMG_CHECK)->EnableWindow(FALSE); - GetDlgItem(IDC_BGIMG_EDIT)->EnableWindow(FALSE); - GetDlgItem(IDC_BGIMG_BUTTON)->EnableWindow(FALSE); + EnableDlgItem(IDC_BGIMG_CHECK, FALSE); + EnableDlgItem(IDC_BGIMG_EDIT, FALSE); + EnableDlgItem(IDC_BGIMG_BUTTON, FALSE); - GetDlgItem(IDC_BGIMG_BRIGHTNESS)->EnableWindow(FALSE); - GetDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS)->EnableWindow(FALSE); + EnableDlgItem(IDC_BGIMG_BRIGHTNESS, FALSE); + EnableDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS, FALSE); } // (3)Mouse cursor type - cmb = (CComboBox *)GetDlgItem(IDC_MOUSE_CURSOR); - for (i = 0 ; MouseCursor[i].name ; i++) { - cmb->InsertString(i, MouseCursor[i].name); + int sel = 0; + for (int i = 0 ; MouseCursor[i].name ; i++) { + const char *name = MouseCursor[i].name; + SendDlgItemMessageA(IDC_MOUSE_CURSOR, CB_ADDSTRING, i, (LPARAM)name); + if (strcmp(name, ts.MouseCursorName) == 0) { + sel = i; + } } - cmb->SelectString(0, ts.MouseCursorName); + SetCurSel(IDC_MOUSE_CURSOR, sel); // (4)Font quality - cmb = (CComboBox *)GetDlgItem(IDC_FONT_QUALITY); switch (ts.FontQuality) { case DEFAULT_QUALITY: - cmb->SetCurSel(0); + SetCurSel(IDC_FONT_QUALITY, 0); break; case NONANTIALIASED_QUALITY: - cmb->SetCurSel(1); + SetCurSel(IDC_FONT_QUALITY, 1); break; case ANTIALIASED_QUALITY: - cmb->SetCurSel(2); + SetCurSel(IDC_FONT_QUALITY, 2); break; default: // CLEARTYPE_QUALITY - cmb->SetCurSel(3); + SetCurSel(IDC_FONT_QUALITY, 3); break; } // (5)ANSI color - listbox = (CListBox *)GetDlgItem(IDC_ANSI_COLOR); - for (i = 0 ; i < 16 ; i++) { + for (int i = 0 ; i < 16 ; i++) { _snprintf_s(buf, sizeof(buf), _TRUNCATE, "%d", i); - listbox->InsertString(i, buf); + SendDlgItemMessageA(IDC_ANSI_COLOR, LB_INSERTSTRING, i, (LPARAM)buf); } - SetupRGBbox(GetSafeHwnd(), 0); -#if 0 - SendMessage(WM_CTLCOLORSTATIC, - (WPARAM)label_hdc, - (LPARAM)GetDlgItem(IDC_SAMPLE_COLOR)); -#endif + SetupRGBbox(0); + SendDlgItemMessage(IDC_ANSI_COLOR, LB_SETCURSEL, 0, 0); + ::InvalidateRect(GetDlgItem(IDC_SAMPLE_COLOR), NULL, TRUE); // (6)Bold Attr Color - btn = (CButton *)GetDlgItem(IDC_ENABLE_ATTR_COLOR_BOLD); - btn->SetCheck((ts.ColorFlag&CF_BOLDCOLOR) != 0); + SetCheck(IDC_ENABLE_ATTR_COLOR_BOLD, (ts.ColorFlag&CF_BOLDCOLOR) != 0); // (7)Blink Attr Color - btn = (CButton *)GetDlgItem(IDC_ENABLE_ATTR_COLOR_BLINK); - btn->SetCheck((ts.ColorFlag&CF_BLINKCOLOR) != 0); + SetCheck(IDC_ENABLE_ATTR_COLOR_BLINK, (ts.ColorFlag&CF_BLINKCOLOR) != 0); // (8)Reverse Attr Color - btn = (CButton *)GetDlgItem(IDC_ENABLE_ATTR_COLOR_REVERSE); - btn->SetCheck((ts.ColorFlag&CF_REVERSECOLOR) != 0); + SetCheck(IDC_ENABLE_ATTR_COLOR_REVERSE, (ts.ColorFlag&CF_REVERSECOLOR) != 0); // (9)URL Color - btn = (CButton *)GetDlgItem(IDC_ENABLE_URL_COLOR); - btn->SetCheck((ts.ColorFlag&CF_URLCOLOR) != 0); + SetCheck(IDC_ENABLE_URL_COLOR, (ts.ColorFlag&CF_URLCOLOR) != 0); // (10)Color - btn = (CButton *)GetDlgItem(IDC_ENABLE_ANSI_COLOR); - btn->SetCheck((ts.ColorFlag&CF_ANSICOLOR) != 0); + SetCheck(IDC_ENABLE_ANSI_COLOR, (ts.ColorFlag&CF_ANSICOLOR) != 0); // (11)URL Underline - btn = (CButton *)GetDlgItem(IDC_URL_UNDERLINE); - btn->SetCheck((ts.FontFlag&FF_URLUNDERLINE) != 0); + SetCheck(IDC_URL_UNDERLINE, (ts.FontFlag&FF_URLUNDERLINE) != 0); // \x83_\x83C\x83A\x83\x8D\x83O\x82Ƀt\x83H\x81[\x83J\x83X\x82Ă\xE9 - ::SetFocus(::GetDlgItem(GetSafeHwnd(), IDC_ALPHA_BLEND_ACTIVE)); - - return FALSE; + ::SetFocus(GetDlgItem(IDC_ALPHA_BLEND_ACTIVE)); } BOOL CVisualPropPageDlg::OnCommand(WPARAM wParam, LPARAM lParam) { - CListBox *listbox; int sel; - char buf[MAXPATHLEN]; - CButton *btn; switch (wParam) { - case IDC_ETERM_LOOKFEEL: + case IDC_ETERM_LOOKFEEL: // \x83`\x83F\x83b\x83N\x82\xB3\x82ꂽ\x82\xE7 Enable/Disable \x82\xF0\x83g\x83O\x83\x8B\x82\xB7\x82\xE9\x81B - btn = (CButton *)GetDlgItem(IDC_ETERM_LOOKFEEL); - if (btn->GetCheck()) { - GetDlgItem(IDC_BGIMG_CHECK)->EnableWindow(TRUE); - btn = (CButton *)GetDlgItem(IDC_BGIMG_CHECK); - if (btn->GetCheck()) { - GetDlgItem(IDC_BGIMG_EDIT)->EnableWindow(TRUE); - GetDlgItem(IDC_BGIMG_BUTTON)->EnableWindow(TRUE); + if (GetCheck(IDC_ETERM_LOOKFEEL)) { + EnableDlgItem(IDC_BGIMG_CHECK, TRUE); + if (GetCheck(IDC_BGIMG_CHECK)) { + EnableDlgItem(IDC_BGIMG_EDIT, TRUE); + EnableDlgItem(IDC_BGIMG_BUTTON, TRUE); - GetDlgItem(IDC_BGIMG_BRIGHTNESS)->EnableWindow(TRUE); - GetDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS)->EnableWindow(TRUE); + EnableDlgItem(IDC_BGIMG_BRIGHTNESS, TRUE); + EnableDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS, TRUE); } else { - GetDlgItem(IDC_BGIMG_EDIT)->EnableWindow(FALSE); - GetDlgItem(IDC_BGIMG_BUTTON)->EnableWindow(FALSE); + EnableDlgItem(IDC_BGIMG_EDIT, FALSE); + EnableDlgItem(IDC_BGIMG_BUTTON, FALSE); - GetDlgItem(IDC_BGIMG_BRIGHTNESS)->EnableWindow(FALSE); - GetDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS)->EnableWindow(FALSE); + EnableDlgItem(IDC_BGIMG_BRIGHTNESS, FALSE); + EnableDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS, FALSE); } } else { - GetDlgItem(IDC_BGIMG_CHECK)->EnableWindow(FALSE); - GetDlgItem(IDC_BGIMG_EDIT)->EnableWindow(FALSE); - GetDlgItem(IDC_BGIMG_BUTTON)->EnableWindow(FALSE); + EnableDlgItem(IDC_BGIMG_CHECK, FALSE); + EnableDlgItem(IDC_BGIMG_EDIT, FALSE); + EnableDlgItem(IDC_BGIMG_BUTTON, FALSE); - GetDlgItem(IDC_BGIMG_BRIGHTNESS)->EnableWindow(FALSE); - GetDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS)->EnableWindow(FALSE); + EnableDlgItem(IDC_BGIMG_BRIGHTNESS, FALSE); + EnableDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS, FALSE); // \x96\xB3\x8C\x{27B0B3}\x82ꂽ\x82\xE7\x81ABGThemeFile \x82\xF0\x8C\xB3\x82ɖ߂\xB7\x81B strncpy_s(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE_DEFAULT, sizeof(ts.EtermLookfeel.BGThemeFile)); // \x94w\x8Ci\x89摜\x82\xE0\x96\xB3\x8C\x{27B0B7}\x82\xE9\x81B - SetDlgItemText(IDC_BGIMG_EDIT, ""); + SetDlgItemTextT(IDC_BGIMG_EDIT, _T("")); SetDlgItemInt(IDC_EDIT_BGIMG_BRIGHTNESS, BG_THEME_IMAGE_BRIGHTNESS_DEFAULT); } return TRUE; case IDC_BGIMG_CHECK: - btn = (CButton *)GetDlgItem(IDC_BGIMG_CHECK); - if (btn->GetCheck()) { - GetDlgItem(IDC_BGIMG_EDIT)->EnableWindow(TRUE); - GetDlgItem(IDC_BGIMG_BUTTON)->EnableWindow(TRUE); + if (GetCheck(IDC_BGIMG_CHECK)) { + EnableDlgItem(IDC_BGIMG_EDIT, TRUE); + EnableDlgItem(IDC_BGIMG_BUTTON, TRUE); - GetDlgItem(IDC_BGIMG_BRIGHTNESS)->EnableWindow(TRUE); - GetDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS)->EnableWindow(TRUE); + EnableDlgItem(IDC_BGIMG_BRIGHTNESS, TRUE); + EnableDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS, TRUE); strncpy_s(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE, sizeof(ts.EtermLookfeel.BGThemeFile)); } else { - GetDlgItem(IDC_BGIMG_EDIT)->EnableWindow(FALSE); - GetDlgItem(IDC_BGIMG_BUTTON)->EnableWindow(FALSE); + EnableDlgItem(IDC_BGIMG_EDIT, FALSE); + EnableDlgItem(IDC_BGIMG_BUTTON, FALSE); - GetDlgItem(IDC_BGIMG_BRIGHTNESS)->EnableWindow(FALSE); - GetDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS)->EnableWindow(FALSE); + EnableDlgItem(IDC_BGIMG_BRIGHTNESS, FALSE); + EnableDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS, FALSE); // \x96\xB3\x8C\x{27B0B3}\x82ꂽ\x82\xE7\x81ABGThemeFile \x82\xF0\x8C\xB3\x82ɖ߂\xB7\x81B strncpy_s(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE_DEFAULT, sizeof(ts.EtermLookfeel.BGThemeFile)); // \x94w\x8Ci\x89摜\x82\xE0\x96\xB3\x8C\x{27B0B7}\x82\xE9\x81B - SetDlgItemText(IDC_BGIMG_EDIT, ""); + SetDlgItemTextT(IDC_BGIMG_EDIT, _T("")); SetDlgItemInt(IDC_EDIT_BGIMG_BRIGHTNESS, BG_THEME_IMAGE_BRIGHTNESS_DEFAULT); } return TRUE; @@ -1191,25 +819,29 @@ case IDC_BGIMG_BUTTON | (BN_CLICKED << 16): // \x94w\x8Ci\x89摜\x82\xF0\x83_\x83C\x83A\x83\x8D\x83O\x82Ŏw\x92肷\x82\xE9\x81B { - CString filter("Image Files(*.jpg;*.jpeg;*.bmp)|*.jpg;*.jpeg;*.bmp|All Files(*.*)|*.*||"); - CFileDialog selDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY, filter); - if (selDlg.DoModal() == IDOK) { - // \x94w\x8Ci\x89摜\x8Ew\x92肪\x88Ӑ}\x93I\x82ɍs\x82\xED\x82ꂽ\x82\xE7\x81ABGThemeFile \x82\xF0\x8CŒ艻\x82\xB7\x82\xE9\x81B - SetDlgItemText(IDC_BGIMG_EDIT, selDlg.GetPathName()); + OPENFILENAMEA ofn; + char szFile[MAX_PATH]; + + memset(&ofn, 0, sizeof(ofn)); + memset(szFile, 0, sizeof(szFile)); + ofn.lStructSize = get_OPENFILENAME_SIZEA(); + ofn.hwndOwner = m_pSheet->m_hWnd; + ofn.lpstrFilter = "Image Files(*.jpg;*.jpeg;*.bmp)\0*.jpg;*.jpeg;*.bmp\0All Files(*.*)\0*.*\0"; + ofn.lpstrFile = szFile; + ofn.nMaxFile = _countof(szFile); + ofn.lpstrTitle = "select image file"; + ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; + if (GetOpenFileNameA(&ofn) != 0) { + SetDlgItemTextA(IDC_BGIMG_EDIT, szFile); } } return TRUE; case IDC_ANSI_COLOR | (LBN_SELCHANGE << 16): - listbox = (CListBox *)GetDlgItem(IDC_ANSI_COLOR); - sel = listbox->GetCurSel(); + sel = SendDlgItemMessage(IDC_ANSI_COLOR, LB_GETCURSEL, 0, 0); if (sel != -1) { - SetupRGBbox(GetSafeHwnd(), sel); -#if 0 - SendMessage(WM_CTLCOLORSTATIC, - (WPARAM)label_hdc, - (LPARAM)GetDlgItem(IDC_SAMPLE_COLOR)); -#endif + SetupRGBbox(sel); + ::InvalidateRect(GetDlgItem(IDC_SAMPLE_COLOR), NULL, TRUE); } return TRUE; @@ -1218,81 +850,61 @@ case IDC_COLOR_BLUE | (EN_KILLFOCUS << 16): { BYTE r, g, b; + char buf[8]; - listbox = (CListBox *)GetDlgItem(IDC_ANSI_COLOR); - sel = listbox->GetCurSel(); + sel = GetCurSel(IDC_ANSI_COLOR); if (sel < 0 && sel > sizeof(ts.ANSIColor)-1) { return TRUE; } - GetDlgItemText(IDC_COLOR_RED, buf, sizeof(buf)); + GetDlgItemTextA(IDC_COLOR_RED, buf, sizeof(buf)); r = atoi(buf); - GetDlgItemText(IDC_COLOR_GREEN, buf, sizeof(buf)); + GetDlgItemTextA(IDC_COLOR_GREEN, buf, sizeof(buf)); g = atoi(buf); - GetDlgItemText(IDC_COLOR_BLUE, buf, sizeof(buf)); + GetDlgItemTextA(IDC_COLOR_BLUE, buf, sizeof(buf)); b = atoi(buf); ts.ANSIColor[sel] = RGB(r, g, b); // 255\x82\xA6\x82\xBDRGB\x92l\x82͕\x82\xB3\x82\xEA\x82\xE9\x82̂ŁA\x82\xBB\x82\xEA\x82\xF0Edit\x82ɕ\\x8E\xA6\x82\xB7\x82\xE9 (2007.2.18 maya) - SetupRGBbox(GetSafeHwnd(), sel); -#if 0 - SendMessage(WM_CTLCOLORSTATIC, - (WPARAM)label_hdc, - (LPARAM)GetDlgItem(IDC_SAMPLE_COLOR)); -#endif + SetupRGBbox(sel); + + ::InvalidateRect(GetDlgItem(IDC_SAMPLE_COLOR), NULL, TRUE); } return TRUE; -#if 0 - case WM_CTLCOLORSTATIC: - { - HDC hDC = (HDC)wp; - HWND hWnd = (HWND)lp; + } - //if (label_hdc == NULL) { - hDC = GetWindowDC(GetDlgItem(hDlgWnd, IDC_SAMPLE_COLOR)); - // label_hdc = hDC; - //} + return TTCPropertyPage::OnCommand(wParam, lParam); +} - if ( hWnd == GetDlgItem(hDlgWnd, IDC_SAMPLE_COLOR) ) { - BYTE r, g, b; +HBRUSH CVisualPropPageDlg::OnCtlColor(HDC hDC, HWND hWnd) +{ + if ( hWnd == GetDlgItem(IDC_SAMPLE_COLOR) ) { + BYTE r, g, b; + char buf[8]; - hWnd = GetDlgItem(hDlgWnd, IDC_COLOR_RED); - SendMessage(hWnd, WM_GETTEXT , sizeof(buf), (LPARAM)buf); - r = atoi(buf); + GetDlgItemTextA(IDC_COLOR_RED, buf, sizeof(buf)); + r = atoi(buf); - hWnd = GetDlgItem(hDlgWnd, IDC_COLOR_GREEN); - SendMessage(hWnd, WM_GETTEXT , sizeof(buf), (LPARAM)buf); - g = atoi(buf); + GetDlgItemTextA(IDC_COLOR_GREEN, buf, sizeof(buf)); + g = atoi(buf); - hWnd = GetDlgItem(hDlgWnd, IDC_COLOR_BLUE); - SendMessage(hWnd, WM_GETTEXT , sizeof(buf), (LPARAM)buf); - b = atoi(buf); + GetDlgItemTextA(IDC_COLOR_BLUE, buf, sizeof(buf)); + b = atoi(buf); - OutputDebugPrintf("%06x\n", RGB(r, g, b)); + SetBkMode(hDC, TRANSPARENT); + SetTextColor(hDC, RGB(r, g, b) ); - SetBkMode(hDC, TRANSPARENT); - SetTextColor(hDC, RGB(r, g, b) ); - ReleaseDC(hDlgWnd, hDC); - - return (BOOL)(HBRUSH)GetStockObject(NULL_BRUSH); - } - return FALSE; - } - break ; -#endif + return (HBRUSH)GetStockObject(NULL_BRUSH); } - - return CPropertyPage::OnCommand(wParam, lParam); + return TTCPropertyPage::OnCtlColor(hDC, hWnd); } void CVisualPropPageDlg::OnOK() { - CButton *btn; - CComboBox *cmb; int sel; char buf[MAXPATHLEN]; COLORREF TmpColor; @@ -1299,7 +911,7 @@ int flag_changed = 0; // (1) - GetDlgItemText(IDC_ALPHA_BLEND_ACTIVE, buf, sizeof(buf)); + GetDlgItemTextA(IDC_ALPHA_BLEND_ACTIVE, buf, sizeof(buf)); if (isdigit(buf[0])) { int i = atoi(buf); ts.AlphaBlendActive = @@ -1306,10 +918,10 @@ (i < 0) ? 0 : (i > 255) ? 255 : i; } - GetDlgItemText(IDC_ALPHA_BLEND_INACTIVE, buf, sizeof(buf)); + GetDlgItemTextA(IDC_ALPHA_BLEND_INACTIVE, buf, sizeof(buf)); if (isdigit(buf[0])) { int i = atoi(buf); - ts.AlphaBlendInactive = + ts.AlphaBlendInactive = (i < 0) ? 0 : (i > 255) ? 255 : i; } @@ -1317,35 +929,32 @@ // (2) // \x83O\x83\x8D\x81[\x83o\x83\x8B\x95ϐ\x94 BGEnable \x82ڏ\x91\x82\xAB\x8A\xB7\x82\xA6\x82\xE9\x82ƁA\x83v\x83\x8D\x83O\x83\x89\x83\x80\x82\xAA\x97\x8E\x82\xBF\x82邱\x82Ƃ\xAA // \x82\xA0\x82\xE9\x82̂ŃR\x83s\x81[\x82\xF0\x8FC\x90\xB3\x82\xB7\x82\xE9\x82݂̂Ƃ\xB7\x82\xE9\x81B(2005.4.24 yutaka) - btn = (CButton *)GetDlgItem(IDC_ETERM_LOOKFEEL); - if (ts.EtermLookfeel.BGEnable != btn->GetCheck()) { + if (ts.EtermLookfeel.BGEnable != GetCheck(IDC_ETERM_LOOKFEEL)) { flag_changed = 1; - ts.EtermLookfeel.BGEnable = btn->GetCheck(); + ts.EtermLookfeel.BGEnable = GetCheck(IDC_ETERM_LOOKFEEL); } - if (ts.EtermLookfeel.BGEnable) { - GetDlgItemText(IDC_BGIMG_EDIT, ts.BGImageFilePath, sizeof(ts.BGImageFilePath)); + GetDlgItemTextA(IDC_BGIMG_EDIT, ts.BGImageFilePath, sizeof(ts.BGImageFilePath)); } else { strncpy_s(ts.BGImageFilePath, sizeof(ts.BGImageFilePath), "%SystemRoot%\\Web\\Wallpaper\\*.bmp", _TRUNCATE); } - GetDlgItemText(IDC_EDIT_BGIMG_BRIGHTNESS, buf, sizeof(buf)); + GetDlgItemTextA(IDC_EDIT_BGIMG_BRIGHTNESS, buf, sizeof(buf)); if (isdigit(buf[0])) { - ts.BGImgBrightness = atoi(buf); - ts.BGImgBrightness = max(0, ts.BGImgBrightness); - ts.BGImgBrightness = min(255, ts.BGImgBrightness); + int i = atoi(buf); + ts.BGImgBrightness = + (i < 0) ? 0 : + (i > 255) ? 255 : i; } // (3) - cmb = (CComboBox *)GetDlgItem(IDC_MOUSE_CURSOR); - sel = cmb->GetCurSel(); + sel = GetCurSel(IDC_MOUSE_CURSOR); if (sel >= 0 && sel < MOUSE_CURSOR_MAX) { strncpy_s(ts.MouseCursorName, sizeof(ts.MouseCursorName), MouseCursor[sel].name, _TRUNCATE); } // (4)Font quality - cmb = (CComboBox *)GetDlgItem(IDC_FONT_QUALITY); - switch (cmb->GetCurSel()) { + switch (GetCurSel(IDC_FONT_QUALITY)) { case 0: ts.FontQuality = DEFAULT_QUALITY; break; @@ -1363,22 +972,19 @@ } // (6) Attr Bold Color - btn = (CButton *)GetDlgItem(IDC_ENABLE_ATTR_COLOR_BOLD); - if (((ts.ColorFlag & CF_BOLDCOLOR) != 0) != btn->GetCheck()) { + if (((ts.ColorFlag & CF_BOLDCOLOR) != 0) != GetCheck(IDC_ENABLE_ATTR_COLOR_BOLD)) { ts.ColorFlag ^= CF_BOLDCOLOR; } // (7) Attr Blink Color - btn = (CButton *)GetDlgItem(IDC_ENABLE_ATTR_COLOR_BLINK); - if (((ts.ColorFlag & CF_BLINKCOLOR) != 0) != btn->GetCheck()) { + if (((ts.ColorFlag & CF_BLINKCOLOR) != 0) != GetCheck(IDC_ENABLE_ATTR_COLOR_BLINK)) { ts.ColorFlag ^= CF_BLINKCOLOR; } // (8) Attr Reverse Color - btn = (CButton *)GetDlgItem(IDC_ENABLE_ATTR_COLOR_REVERSE); if (ts.ColorFlag & CF_REVERSEVIDEO) { // Reverse Video\x83\x82\x81[\x83h(DECSCNM)\x8E\x9E\x82͏\x88\x97\x9D\x82\xF0\x95ς\xA6\x82\xE9 if (ts.ColorFlag & CF_REVERSECOLOR) { - if (!btn->GetCheck()) { + if (!GetCheck(IDC_ENABLE_ATTR_COLOR_REVERSE)) { TmpColor = ts.VTColor[0]; ts.VTColor[0] = ts.VTReverseColor[1]; ts.VTReverseColor[1] = ts.VTColor[1]; @@ -1387,7 +993,7 @@ ts.ColorFlag ^= CF_REVERSECOLOR; } } - else if (btn->GetCheck()) { + else if (GetCheck(IDC_ENABLE_ATTR_COLOR_REVERSE)) { TmpColor = ts.VTColor[0]; ts.VTColor[0] = ts.VTReverseColor[0]; ts.VTReverseColor[0] = ts.VTColor[1]; @@ -1396,25 +1002,22 @@ ts.ColorFlag ^= CF_REVERSECOLOR; } } - else if (((ts.ColorFlag & CF_REVERSECOLOR) != 0) != btn->GetCheck()) { + else if (((ts.ColorFlag & CF_REVERSECOLOR) != 0) != GetCheck(IDC_ENABLE_ATTR_COLOR_REVERSE)) { ts.ColorFlag ^= CF_REVERSECOLOR; } // (9) URL Color - btn = (CButton *)GetDlgItem(IDC_ENABLE_URL_COLOR); - if (((ts.ColorFlag & CF_URLCOLOR) != 0) != btn->GetCheck()) { + if (((ts.ColorFlag & CF_URLCOLOR) != 0) != GetCheck(IDC_ENABLE_URL_COLOR)) { ts.ColorFlag ^= CF_URLCOLOR; } // (10) Color - btn = (CButton *)GetDlgItem(IDC_ENABLE_ANSI_COLOR); - if (((ts.ColorFlag & CF_ANSICOLOR) != 0) != btn->GetCheck()) { + if (((ts.ColorFlag & CF_ANSICOLOR) != 0) != GetCheck(IDC_ENABLE_ANSI_COLOR)) { ts.ColorFlag ^= CF_ANSICOLOR; } // (11) URL Underline - btn = (CButton *)GetDlgItem(IDC_URL_UNDERLINE); - if (((ts.FontFlag & FF_URLUNDERLINE) != 0) != btn->GetCheck()) { + if (((ts.FontFlag & FF_URLUNDERLINE) != 0) != GetCheck(IDC_URL_UNDERLINE)) { ts.FontFlag ^= FF_URLUNDERLINE; } @@ -1428,32 +1031,29 @@ // CLogPropPageDlg \x83_\x83C\x83A\x83\x8D\x83O -IMPLEMENT_DYNAMIC(CLogPropPageDlg, CPropertyPage) - -CLogPropPageDlg::CLogPropPageDlg() - : CPropertyPage(CLogPropPageDlg::IDD) +CLogPropPageDlg::CLogPropPageDlg(HINSTANCE inst, TTCPropertySheet *sheet) + : TTCPropertyPage(inst, CLogPropPageDlg::IDD, sheet) { - + TCHAR UIMsg[MAX_UIMSG]; + get_lang_msgT("DLG_TABSHEET_TITLE_Log", UIMsg, _countof(UIMsg), + _T("Log"), ts.UILanguageFile); + m_psp.pszTitle = _tcsdup(UIMsg); + m_psp.dwFlags |= PSP_USETITLE; } CLogPropPageDlg::~CLogPropPageDlg() { - if (DlgLogFont != NULL) { - DeleteObject(DlgLogFont); - } + free((void *)m_psp.pszTitle); } -BEGIN_MESSAGE_MAP(CLogPropPageDlg, CPropertyPage) -END_MESSAGE_MAP() - // CLogPropPageDlg \x83\x81\x83b\x83Z\x81[\x83W \x83n\x83\x93\x83h\x83\x89 #define LOG_ROTATE_SIZETYPE_NUM 3 -static char *LogRotateSizeType[] = { +static const char *LogRotateSizeType[] = { "Byte", "KB", "MB" }; -static char *GetLogRotateSizeType(int val) +static const char *GetLogRotateSizeType(int val) { if (val >= LOG_ROTATE_SIZETYPE_NUM) val = 0; @@ -1461,175 +1061,101 @@ return LogRotateSizeType[val]; } -BOOL CLogPropPageDlg::OnInitDialog() +void CLogPropPageDlg::OnInitDialog() { - char uimsg[MAX_UIMSG]; - CButton *btn; - CComboBox *combo; - int i, TmpLogRotateSize; + TTCPropertyPage::OnInitDialog(); - CPropertyPage::OnInitDialog(); - - font = (HFONT)SendMessage(WM_GETFONT, 0, 0); - GetObject(font, sizeof(LOGFONT), &logfont); - if (get_lang_font("DLG_TAHOMA_FONT", GetSafeHwnd(), &logfont, &DlgLogFont, ts.UILanguageFile)) { - SendDlgItemMessage(IDC_VIEWLOG_LABEL, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_VIEWLOG_EDITOR, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_VIEWLOG_PATH, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_DEFAULTNAME_LABEL, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_DEFAULTNAME_EDITOR, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_DEFAULTPATH_LABEL, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_DEFAULTPATH_EDITOR, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_DEFAULTPATH_PUSH, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_AUTOSTART, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); - + static const DlgTextInfo TextInfos[] = { + { IDC_VIEWLOG_LABEL, "DLG_TAB_LOG_EDITOR" }, + { IDC_DEFAULTNAME_LABEL, "DLG_TAB_LOG_FILENAME" }, + { IDC_DEFAULTPATH_LABEL, "DLG_TAB_LOG_FILEPATH" }, + { IDC_AUTOSTART, "DLG_TAB_LOG_AUTOSTART" }, // Log rotate - SendDlgItemMessage(IDC_LOG_ROTATE, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_ROTATE_SIZE_TEXT, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_ROTATE_SIZE, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_ROTATE_SIZE_TYPE, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_ROTATE_STEP_TEXT, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_ROTATE_STEP, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); - + { IDC_LOG_ROTATE, "DLG_TAB_LOG_ROTATE" }, + { IDC_ROTATE_SIZE_TEXT, "DLG_TAB_LOG_ROTATE_SIZE_TEXT" }, + { IDC_ROTATE_STEP_TEXT, "DLG_TAB_LOG_ROTATESTEP" }, // Log options - SendDlgItemMessage(IDC_LOG_OPTION_GROUP, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_OPT_BINARY, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_OPT_APPEND, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_OPT_PLAINTEXT, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_OPT_TIMESTAMP, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_OPT_HIDEDLG, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_OPT_INCBUF, WM_SETFONT, (WPARAM)DlgLogFont, MAKELPARAM(TRUE,0)); - } - else { - DlgLogFont = NULL; - } + // FIXME: \x83\x81\x83b\x83Z\x81[\x83W\x83J\x83^\x83\x8D\x83O\x82͊\xF9\x91\xB6\x82̃\x8D\x83O\x83I\x83v\x83V\x83\x87\x83\x93\x82̂\xE0\x82̂𗬗p\x82\xB5\x82\xBD\x82\xAA\x81A\x83A\x83N\x83Z\x83\x89\x83\x8C\x81[\x83^\x83L\x81[\x82\xAA\x8Fd\x95\xA1\x82\xB7\x82邩\x82\xE0\x82\xB5\x82\xEA\x82Ȃ\xA2\x81B + { IDC_LOG_OPTION_GROUP, "DLG_FOPT" }, + { IDC_OPT_BINARY, "DLG_FOPT_BINARY" }, + { IDC_OPT_APPEND, "DLG_FOPT_APPEND" }, + { IDC_OPT_PLAINTEXT, "DLG_FOPT_PLAIN" }, + { IDC_OPT_HIDEDLG, "DLG_FOPT_HIDEDIALOG" }, + { IDC_OPT_INCBUF, "DLG_FOPT_ALLBUFFINFIRST" }, + { IDC_OPT_TIMESTAMP, "DLG_FOPT_TIMESTAMP" }, + }; + SetDlgTexts(m_hWnd, TextInfos, _countof(TextInfos), ts.UILanguageFile); - GetDlgItemText(IDC_VIEWLOG_LABEL, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_LOG_EDITOR", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_VIEWLOG_LABEL, ts.UIMsg); - GetDlgItemText(IDC_DEFAULTNAME_LABEL, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_LOG_FILENAME", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_DEFAULTNAME_LABEL, ts.UIMsg); - GetDlgItemText(IDC_DEFAULTPATH_LABEL, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_LOG_FILEPATH", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_DEFAULTPATH_LABEL, ts.UIMsg); - GetDlgItemText(IDC_AUTOSTART, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_LOG_AUTOSTART", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_AUTOSTART, ts.UIMsg); - // Log rotate - GetDlgItemText(IDC_LOG_ROTATE, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_LOG_ROTATE", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_LOG_ROTATE, ts.UIMsg); - GetDlgItemText(IDC_ROTATE_SIZE_TEXT, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_LOG_ROTATE_SIZE_TEXT", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_ROTATE_SIZE_TEXT, ts.UIMsg); - GetDlgItemText(IDC_ROTATE_STEP_TEXT, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_LOG_ROTATESTEP", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_ROTATE_STEP_TEXT, ts.UIMsg); - // Log options - // FIXME: \x83\x81\x83b\x83Z\x81[\x83W\x83J\x83^\x83\x8D\x83O\x82͊\xF9\x91\xB6\x82̃\x8D\x83O\x83I\x83v\x83V\x83\x87\x83\x93\x82̂\xE0\x82̂𗬗p\x82\xB5\x82\xBD\x82\xAA\x81A\x83A\x83N\x83Z\x83\x89\x83\x8C\x81[\x83^\x83L\x81[\x82\xAA\x8Fd\x95\xA1\x82\xB7\x82邩\x82\xE0\x82\xB5\x82\xEA\x82Ȃ\xA2\x81B - GetDlgItemText(IDC_LOG_OPTION_GROUP, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_FOPT", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_LOG_OPTION_GROUP, ts.UIMsg); - GetDlgItemText(IDC_OPT_BINARY, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_FOPT_BINARY", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_OPT_BINARY, ts.UIMsg); - GetDlgItemText(IDC_OPT_APPEND, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_FOPT_APPEND", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_OPT_APPEND, ts.UIMsg); - GetDlgItemText(IDC_OPT_PLAINTEXT, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_FOPT_PLAIN", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_OPT_PLAINTEXT, ts.UIMsg); - GetDlgItemText(IDC_OPT_HIDEDLG, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_FOPT_HIDEDIALOG", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_OPT_HIDEDLG, ts.UIMsg); - GetDlgItemText(IDC_OPT_INCBUF, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_FOPT_ALLBUFFINFIRST", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_OPT_INCBUF, ts.UIMsg); - GetDlgItemText(IDC_OPT_TIMESTAMP, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_FOPT_TIMESTAMP", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_OPT_TIMESTAMP, ts.UIMsg); + TCHAR UIMsg[MAX_UIMSG]; + get_lang_msgT("DLG_FOPT_TIMESTAMP_LOCAL", UIMsg, _countof(UIMsg), _T("Local Time"), ts.UILanguageFile); + SendDlgItemMessage(IDC_OPT_TIMESTAMP_TYPE, CB_ADDSTRING, 0, (LPARAM)UIMsg); + get_lang_msgT("DLG_FOPT_TIMESTAMP_UTC", UIMsg, _countof(UIMsg), _T("UTC"), ts.UILanguageFile); + SendDlgItemMessage(IDC_OPT_TIMESTAMP_TYPE, CB_ADDSTRING, 0, (LPARAM)UIMsg); + get_lang_msgT("DLG_FOPT_TIMESTAMP_ELAPSED_LOGGING", UIMsg, _countof(UIMsg), _T("Elapsed Time (Logging)"), ts.UILanguageFile); + SendDlgItemMessage(IDC_OPT_TIMESTAMP_TYPE, CB_ADDSTRING, 0, (LPARAM)UIMsg); + get_lang_msgT("DLG_FOPT_TIMESTAMP_ELAPSED_CONNECTION", UIMsg, _countof(UIMsg), _T("Elapsed Time (Connection)"), ts.UILanguageFile); + SendDlgItemMessage(IDC_OPT_TIMESTAMP_TYPE, CB_ADDSTRING, 0, (LPARAM)UIMsg); - get_lang_msg("DLG_FOPT_TIMESTAMP_LOCAL", ts.UIMsg, sizeof(ts.UIMsg), "Local Time", ts.UILanguageFile); - SendDlgItemMessage(IDC_OPT_TIMESTAMP_TYPE, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg); - get_lang_msg("DLG_FOPT_TIMESTAMP_UTC", ts.UIMsg, sizeof(ts.UIMsg), "UTC", ts.UILanguageFile); - SendDlgItemMessage(IDC_OPT_TIMESTAMP_TYPE, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg); - get_lang_msg("DLG_FOPT_TIMESTAMP_ELAPSED_LOGGING", ts.UIMsg, sizeof(ts.UIMsg), "Elapsed Time (Logging)", ts.UILanguageFile); - SendDlgItemMessage(IDC_OPT_TIMESTAMP_TYPE, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg); - get_lang_msg("DLG_FOPT_TIMESTAMP_ELAPSED_CONNECTION", ts.UIMsg, sizeof(ts.UIMsg), "Elapsed Time (Connection)", ts.UILanguageFile); - SendDlgItemMessage(IDC_OPT_TIMESTAMP_TYPE, CB_ADDSTRING, 0, (LPARAM)ts.UIMsg); - // Viewlog Editor path (2005.1.29 yutaka) - SetDlgItemText(IDC_VIEWLOG_EDITOR, ts.ViewlogEditor); + SetDlgItemTextA(IDC_VIEWLOG_EDITOR, ts.ViewlogEditor); // Log Default File Name (2006.8.28 maya) - SetDlgItemText(IDC_DEFAULTNAME_EDITOR, ts.LogDefaultName); + SetDlgItemTextA(IDC_DEFAULTNAME_EDITOR, ts.LogDefaultName); // Log Default File Path (2007.5.30 maya) - SetDlgItemText(IDC_DEFAULTPATH_EDITOR, ts.LogDefaultPath); + SetDlgItemTextA(IDC_DEFAULTPATH_EDITOR, ts.LogDefaultPath); /* Auto start logging (2007.5.31 maya) */ - btn = (CButton *)GetDlgItem(IDC_AUTOSTART); - btn->SetCheck(ts.LogAutoStart); + SetCheck(IDC_AUTOSTART, ts.LogAutoStart); // Log rotate - btn = (CButton *)GetDlgItem(IDC_LOG_ROTATE); - btn->SetCheck(ts.LogRotate != ROTATE_NONE); + SetCheck(IDC_LOG_ROTATE, ts.LogRotate != ROTATE_NONE); - combo = (CComboBox *)GetDlgItem(IDC_ROTATE_SIZE_TYPE); - for (i = 0 ; i < LOG_ROTATE_SIZETYPE_NUM ; i++) { - combo->AddString(LogRotateSizeType[i]); + for (int i = 0 ; i < LOG_ROTATE_SIZETYPE_NUM ; i++) { + SendDlgItemMessageA(IDC_ROTATE_SIZE_TYPE, CB_ADDSTRING, 0, (LPARAM)LogRotateSizeType[i]); } - - TmpLogRotateSize = ts.LogRotateSize; - for (i = 0 ; i < ts.LogRotateSizeType ; i++) + int TmpLogRotateSize = ts.LogRotateSize; + for (int i = 0 ; i < ts.LogRotateSizeType ; i++) TmpLogRotateSize /= 1024; SetDlgItemInt(IDC_ROTATE_SIZE, TmpLogRotateSize, FALSE); - combo->SelectString(-1, GetLogRotateSizeType(ts.LogRotateSizeType)); + SendDlgItemMessageA(IDC_ROTATE_SIZE_TYPE, CB_SELECTSTRING, -1, (LPARAM)GetLogRotateSizeType(ts.LogRotateSizeType)); SetDlgItemInt(IDC_ROTATE_STEP, ts.LogRotateStep, FALSE); if (ts.LogRotate == ROTATE_NONE) { - GetDlgItem(IDC_ROTATE_SIZE_TEXT)->EnableWindow(FALSE); - GetDlgItem(IDC_ROTATE_SIZE)->EnableWindow(FALSE); - GetDlgItem(IDC_ROTATE_SIZE_TYPE)->EnableWindow(FALSE); - GetDlgItem(IDC_ROTATE_STEP_TEXT)->EnableWindow(FALSE); - GetDlgItem(IDC_ROTATE_STEP)->EnableWindow(FALSE); + EnableDlgItem(IDC_ROTATE_SIZE_TEXT, FALSE); + EnableDlgItem(IDC_ROTATE_SIZE, FALSE); + EnableDlgItem(IDC_ROTATE_SIZE_TYPE, FALSE); + EnableDlgItem(IDC_ROTATE_STEP_TEXT, FALSE); + EnableDlgItem(IDC_ROTATE_STEP, FALSE); } else { - GetDlgItem(IDC_ROTATE_SIZE_TEXT)->EnableWindow(TRUE); - GetDlgItem(IDC_ROTATE_SIZE)->EnableWindow(TRUE); - GetDlgItem(IDC_ROTATE_SIZE_TYPE)->EnableWindow(TRUE); - GetDlgItem(IDC_ROTATE_STEP_TEXT)->EnableWindow(TRUE); - GetDlgItem(IDC_ROTATE_STEP)->EnableWindow(TRUE); + EnableDlgItem(IDC_ROTATE_SIZE_TEXT, TRUE); + EnableDlgItem(IDC_ROTATE_SIZE, TRUE); + EnableDlgItem(IDC_ROTATE_SIZE_TYPE, TRUE); + EnableDlgItem(IDC_ROTATE_STEP_TEXT, TRUE); + EnableDlgItem(IDC_ROTATE_STEP, TRUE); } // Log options - btn = (CButton *)GetDlgItem(IDC_OPT_BINARY); - btn->SetCheck(ts.LogBinary != 0); + SetCheck(IDC_OPT_BINARY, ts.LogBinary != 0); if (ts.LogBinary) { - GetDlgItem(IDC_OPT_PLAINTEXT)->EnableWindow(FALSE); - GetDlgItem(IDC_OPT_TIMESTAMP)->EnableWindow(FALSE); + EnableDlgItem(IDC_OPT_PLAINTEXT, FALSE); + EnableDlgItem(IDC_OPT_TIMESTAMP, FALSE); } else { - GetDlgItem(IDC_OPT_PLAINTEXT)->EnableWindow(TRUE); - GetDlgItem(IDC_OPT_TIMESTAMP)->EnableWindow(TRUE); + EnableDlgItem(IDC_OPT_PLAINTEXT, TRUE); + EnableDlgItem(IDC_OPT_TIMESTAMP, TRUE); } - btn = (CButton *)GetDlgItem(IDC_OPT_APPEND); - btn->SetCheck(ts.Append != 0); - btn = (CButton *)GetDlgItem(IDC_OPT_PLAINTEXT); - btn->SetCheck(ts.LogTypePlainText != 0); - btn = (CButton *)GetDlgItem(IDC_OPT_HIDEDLG); - btn->SetCheck(ts.LogHideDialog != 0); - btn = (CButton *)GetDlgItem(IDC_OPT_INCBUF); - btn->SetCheck(ts.LogAllBuffIncludedInFirst != 0); - btn = (CButton *)GetDlgItem(IDC_OPT_TIMESTAMP); - btn->SetCheck(ts.LogTimestamp != 0); + SetCheck(IDC_OPT_APPEND, ts.Append != 0); + SetCheck(IDC_OPT_PLAINTEXT, ts.LogTypePlainText != 0); + SetCheck(IDC_OPT_HIDEDLG, ts.LogHideDialog != 0); + SetCheck(IDC_OPT_INCBUF, ts.LogAllBuffIncludedInFirst != 0); + SetCheck(IDC_OPT_TIMESTAMP, ts.LogTimestamp != 0); - combo = (CComboBox *)GetDlgItem(IDC_OPT_TIMESTAMP_TYPE); - combo->SetCurSel(ts.LogTimestampType); + SetCurSel(IDC_OPT_TIMESTAMP_TYPE, ts.LogTimestampType); if (ts.LogBinary || !ts.LogTimestamp) { - GetDlgItem(IDC_OPT_TIMESTAMP_TYPE)->EnableWindow(FALSE); + EnableDlgItem(IDC_OPT_TIMESTAMP_TYPE, FALSE); } else { - GetDlgItem(IDC_OPT_TIMESTAMP_TYPE)->EnableWindow(TRUE); + EnableDlgItem(IDC_OPT_TIMESTAMP_TYPE, TRUE); } /* switch (ts.LogTimestampType) { @@ -1650,22 +1176,21 @@ // \x83_\x83C\x83A\x83\x8D\x83O\x82Ƀt\x83H\x81[\x83J\x83X\x82Ă\xE9 ::SetFocus(::GetDlgItem(GetSafeHwnd(), IDC_VIEWLOG_EDITOR)); - - return FALSE; } BOOL CLogPropPageDlg::OnCommand(WPARAM wParam, LPARAM lParam) { char uimsg[MAX_UIMSG]; - char buf[MAX_PATH], buf2[MAX_PATH]; + char buf[MAX_PATH]; + char buf2[MAX_PATH]; switch (wParam) { case IDC_VIEWLOG_PATH | (BN_CLICKED << 16): { - OPENFILENAME ofn; + OPENFILENAMEA ofn; ZeroMemory(&ofn, sizeof(ofn)); - ofn.lStructSize = get_OPENFILENAME_SIZE(); + ofn.lStructSize = get_OPENFILENAME_SIZEA(); ofn.hwndOwner = GetSafeHwnd(); get_lang_msg("FILEDLG_SELECT_LOGVIEW_APP_FILTER", ts.UIMsg, sizeof(ts.UIMsg), "exe(*.exe)\\0*.exe\\0all(*.*)\\0*.*\\0\\0", ts.UILanguageFile); @@ -1676,8 +1201,8 @@ "Choose a executing file with launching logging file", ts.UILanguageFile); ofn.lpstrTitle = uimsg; ofn.Flags = OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_FORCESHOWHIDDEN | OFN_HIDEREADONLY; - if (GetOpenFileName(&ofn) != 0) { - SetDlgItemText(IDC_VIEWLOG_EDITOR, ts.ViewlogEditor); + if (GetOpenFileNameA(&ofn) != 0) { + SetDlgItemTextA(IDC_VIEWLOG_EDITOR, ts.ViewlogEditor); } } return TRUE; @@ -1695,20 +1220,18 @@ case IDC_LOG_ROTATE | (BN_CLICKED << 16): { - CButton *btn; - btn = (CButton *)GetDlgItem(IDC_LOG_ROTATE); - if (btn->GetCheck()) { - GetDlgItem(IDC_ROTATE_SIZE_TEXT)->EnableWindow(TRUE); - GetDlgItem(IDC_ROTATE_SIZE)->EnableWindow(TRUE); - GetDlgItem(IDC_ROTATE_SIZE_TYPE)->EnableWindow(TRUE); - GetDlgItem(IDC_ROTATE_STEP_TEXT)->EnableWindow(TRUE); - GetDlgItem(IDC_ROTATE_STEP)->EnableWindow(TRUE); + if (GetCheck(IDC_LOG_ROTATE)) { + EnableDlgItem(IDC_ROTATE_SIZE_TEXT, TRUE); + EnableDlgItem(IDC_ROTATE_SIZE, TRUE); + EnableDlgItem(IDC_ROTATE_SIZE_TYPE, TRUE); + EnableDlgItem(IDC_ROTATE_STEP_TEXT, TRUE); + EnableDlgItem(IDC_ROTATE_STEP, TRUE); } else { - GetDlgItem(IDC_ROTATE_SIZE_TEXT)->EnableWindow(FALSE); - GetDlgItem(IDC_ROTATE_SIZE)->EnableWindow(FALSE); - GetDlgItem(IDC_ROTATE_SIZE_TYPE)->EnableWindow(FALSE); - GetDlgItem(IDC_ROTATE_STEP_TEXT)->EnableWindow(FALSE); - GetDlgItem(IDC_ROTATE_STEP)->EnableWindow(FALSE); + EnableDlgItem(IDC_ROTATE_SIZE_TEXT, FALSE); + EnableDlgItem(IDC_ROTATE_SIZE, FALSE); + EnableDlgItem(IDC_ROTATE_SIZE_TYPE, FALSE); + EnableDlgItem(IDC_ROTATE_STEP_TEXT, FALSE); + EnableDlgItem(IDC_ROTATE_STEP, FALSE); } } @@ -1716,19 +1239,16 @@ case IDC_OPT_BINARY | (BN_CLICKED << 16): { - CButton *btn; - btn = (CButton *)GetDlgItem(IDC_OPT_BINARY); - if (btn->GetCheck()) { - GetDlgItem(IDC_OPT_PLAINTEXT)->EnableWindow(FALSE); - GetDlgItem(IDC_OPT_TIMESTAMP)->EnableWindow(FALSE); - GetDlgItem(IDC_OPT_TIMESTAMP_TYPE)->EnableWindow(FALSE); + if (GetCheck(IDC_OPT_BINARY)) { + EnableDlgItem(IDC_OPT_PLAINTEXT, FALSE); + EnableDlgItem(IDC_OPT_TIMESTAMP, FALSE); + EnableDlgItem(IDC_OPT_TIMESTAMP_TYPE, FALSE); } else { - GetDlgItem(IDC_OPT_PLAINTEXT)->EnableWindow(TRUE); - GetDlgItem(IDC_OPT_TIMESTAMP)->EnableWindow(TRUE); + EnableDlgItem(IDC_OPT_PLAINTEXT, TRUE); + EnableDlgItem(IDC_OPT_TIMESTAMP, TRUE); - btn = (CButton *)GetDlgItem(IDC_OPT_TIMESTAMP); - if (btn->GetCheck()) { - GetDlgItem(IDC_OPT_TIMESTAMP_TYPE)->EnableWindow(TRUE); + if (GetCheck(IDC_OPT_TIMESTAMP)) { + EnableDlgItem(IDC_OPT_TIMESTAMP_TYPE, TRUE); } } } @@ -1736,18 +1256,16 @@ case IDC_OPT_TIMESTAMP | (BN_CLICKED << 16): { - CButton *btn; - btn = (CButton *)GetDlgItem(IDC_OPT_TIMESTAMP); - if (btn->GetCheck()) { - GetDlgItem(IDC_OPT_TIMESTAMP_TYPE)->EnableWindow(TRUE); + if (GetCheck(IDC_OPT_TIMESTAMP)) { + EnableDlgItem(IDC_OPT_TIMESTAMP_TYPE, TRUE); } else { - GetDlgItem(IDC_OPT_TIMESTAMP_TYPE)->EnableWindow(FALSE); + EnableDlgItem(IDC_OPT_TIMESTAMP_TYPE, FALSE); } } return TRUE; } - return CPropertyPage::OnCommand(wParam, lParam); + return TTCPropertyPage::OnCommand(wParam, lParam); } void CLogPropPageDlg::OnOK() @@ -1755,67 +1273,61 @@ char buf[80], buf2[80]; time_t time_local; struct tm *tm_local; - char uimsg[MAX_UIMSG]; - CButton *btn; - CString str; - CComboBox *cmb; - int i; + TCHAR uimsg[MAX_UIMSG]; + TCHAR uimsg2[MAX_UIMSG]; // Viewlog Editor path (2005.1.29 yutaka) - GetDlgItemText(IDC_VIEWLOG_EDITOR, ts.ViewlogEditor, sizeof(ts.ViewlogEditor)); + GetDlgItemText(IDC_VIEWLOG_EDITOR, ts.ViewlogEditor, _countof(ts.ViewlogEditor)); // Log Default File Name (2006.8.28 maya) - GetDlgItemText(IDC_DEFAULTNAME_EDITOR, buf, sizeof(buf)); + GetDlgItemTextA(IDC_DEFAULTNAME_EDITOR, buf, sizeof(buf)); if (isInvalidStrftimeChar(buf)) { - get_lang_msg("MSG_ERROR", uimsg, sizeof(uimsg), "ERROR", ts.UILanguageFile); - get_lang_msg("MSG_LOGFILE_INVALID_CHAR_ERROR", ts.UIMsg, sizeof(ts.UIMsg), - "Invalid character is included in log file name.", ts.UILanguageFile); - MessageBox(ts.UIMsg, uimsg, MB_ICONEXCLAMATION); + get_lang_msgT("MSG_ERROR", uimsg, _countof(uimsg), _T("ERROR"), ts.UILanguageFile); + get_lang_msgT("MSG_LOGFILE_INVALID_CHAR_ERROR", uimsg2, _countof(uimsg2), + _T("Invalid character is included in log file name."), ts.UILanguageFile); + MessageBox(uimsg2, uimsg, MB_ICONEXCLAMATION); return; } + // \x8C\xBB\x8Dݎ\x9E\x8D\x8F\x82\xF0\x8E擾 time(&time_local); tm_local = localtime(&time_local); // \x8E\x9E\x8D\x8F\x95\xB6\x8E\x9A\x97\xF1\x82ɕϊ\xB7 if (strlen(buf) != 0 && strftime(buf2, sizeof(buf2), buf, tm_local) == 0) { - get_lang_msg("MSG_ERROR", uimsg, sizeof(uimsg), "ERROR", ts.UILanguageFile); - get_lang_msg("MSG_LOGFILE_TOOLONG_ERROR", ts.UIMsg, sizeof(ts.UIMsg), - "The log file name is too long.", ts.UILanguageFile); - MessageBox(ts.UIMsg, uimsg, MB_ICONEXCLAMATION); + get_lang_msgT("MSG_ERROR", uimsg, _countof(uimsg), _T("ERROR"), ts.UILanguageFile); + get_lang_msgT("MSG_LOGFILE_TOOLONG_ERROR", uimsg2, _countof(uimsg2), + _T("The log file name is too long."), ts.UILanguageFile); + MessageBox(uimsg2, uimsg, MB_ICONEXCLAMATION); return; } if (isInvalidFileNameChar(buf2)) { - get_lang_msg("MSG_ERROR", uimsg, sizeof(uimsg), "ERROR", ts.UILanguageFile); - get_lang_msg("MSG_LOGFILE_INVALID_CHAR_ERROR", ts.UIMsg, sizeof(ts.UIMsg), - "Invalid character is included in log file name.", ts.UILanguageFile); - MessageBox(ts.UIMsg, uimsg, MB_ICONEXCLAMATION); + get_lang_msgT("MSG_ERROR", uimsg, _countof(uimsg), _T("ERROR"), ts.UILanguageFile); + get_lang_msgT("MSG_LOGFILE_INVALID_CHAR_ERROR", uimsg2, _countof(uimsg2), + _T("Invalid character is included in log file name."), ts.UILanguageFile); + MessageBox(uimsg2, uimsg, MB_ICONEXCLAMATION); return; } strncpy_s(ts.LogDefaultName, sizeof(ts.LogDefaultName), buf, _TRUNCATE); // Log Default File Path (2007.5.30 maya) - GetDlgItemText(IDC_DEFAULTPATH_EDITOR, ts.LogDefaultPath, sizeof(ts.LogDefaultPath)); + GetDlgItemText(IDC_DEFAULTPATH_EDITOR, ts.LogDefaultPath, _countof(ts.LogDefaultPath)); /* Auto start logging (2007.5.31 maya) */ - btn = (CButton *)GetDlgItem(IDC_AUTOSTART); - ts.LogAutoStart = btn->GetCheck(); + ts.LogAutoStart = GetCheck(IDC_AUTOSTART); /* Log Rotate */ - btn = (CButton *)GetDlgItem(IDC_LOG_ROTATE); - if (btn->GetCheck()) { /* on */ + if (GetCheck(IDC_LOG_ROTATE)) { /* on */ ts.LogRotate = ROTATE_SIZE; - - ((CComboBox*)GetDlgItem(IDC_ROTATE_SIZE_TYPE))->GetWindowText(str); - for (i = 0 ; i < LOG_ROTATE_SIZETYPE_NUM ; i++) { - if (strcmp(str, LogRotateSizeType[i]) == 0) + GetDlgItemText(IDC_ROTATE_SIZE_TYPE, buf, _countof(buf)); + ts.LogRotateSizeType = 0; + for (int i = 0 ; i < LOG_ROTATE_SIZETYPE_NUM ; i++) { + if (strcmp(buf, LogRotateSizeType[i]) == 0) { + ts.LogRotateSizeType = i; break; + } } - if (i >= LOG_ROTATE_SIZETYPE_NUM) - i = 0; - ts.LogRotateSizeType = i; - ts.LogRotateSize = GetDlgItemInt(IDC_ROTATE_SIZE); - for (i = 0 ; i < ts.LogRotateSizeType ; i++) + for (int i = 0 ; i < ts.LogRotateSizeType ; i++) ts.LogRotateSize *= 1024; ts.LogRotateStep = GetDlgItemInt(IDC_ROTATE_STEP); @@ -1826,8 +1338,7 @@ } // Log Options - btn = (CButton *)GetDlgItem(IDC_OPT_BINARY); - if (btn->GetCheck()) { + if (GetCheck(IDC_OPT_BINARY)) { ts.LogBinary = 1; } else { @@ -1834,8 +1345,7 @@ ts.LogBinary = 0; } - btn = (CButton *)GetDlgItem(IDC_OPT_APPEND); - if (btn->GetCheck()) { + if (GetCheck(IDC_OPT_APPEND)) { ts.Append = 1; } else { @@ -1842,8 +1352,7 @@ ts.Append = 0; } - btn = (CButton *)GetDlgItem(IDC_OPT_PLAINTEXT); - if (btn->GetCheck()) { + if (GetCheck(IDC_OPT_PLAINTEXT)) { ts.LogTypePlainText = 1; } else { @@ -1850,8 +1359,7 @@ ts.LogTypePlainText = 0; } - btn = (CButton *)GetDlgItem(IDC_OPT_HIDEDLG); - if (btn->GetCheck()) { + if (GetCheck(IDC_OPT_HIDEDLG)) { ts.LogHideDialog = 1; } else { @@ -1858,8 +1366,7 @@ ts.LogHideDialog = 0; } - btn = (CButton *)GetDlgItem(IDC_OPT_INCBUF); - if (btn->GetCheck()) { + if (GetCheck(IDC_OPT_INCBUF)) { ts.LogAllBuffIncludedInFirst = 1; } else { @@ -1866,8 +1373,7 @@ ts.LogAllBuffIncludedInFirst = 0; } - btn = (CButton *)GetDlgItem(IDC_OPT_TIMESTAMP); - if (btn->GetCheck()) { + if (GetCheck(IDC_OPT_TIMESTAMP)) { ts.LogTimestamp = 1; } else { @@ -1874,95 +1380,58 @@ ts.LogTimestamp = 0; } - cmb = (CComboBox *)GetDlgItem(IDC_OPT_TIMESTAMP_TYPE); - ts.LogTimestampType = cmb->GetCurSel(); + ts.LogTimestampType = GetCurSel(IDC_OPT_TIMESTAMP_TYPE); } +///////////////////////////// // CCygwinPropPageDlg \x83_\x83C\x83A\x83\x8D\x83O -IMPLEMENT_DYNAMIC(CCygwinPropPageDlg, CPropertyPage) - -CCygwinPropPageDlg::CCygwinPropPageDlg() - : CPropertyPage(CCygwinPropPageDlg::IDD) +CCygwinPropPageDlg::CCygwinPropPageDlg(HINSTANCE inst, TTCPropertySheet *sheet) + : TTCPropertyPage(inst, CCygwinPropPageDlg::IDD, sheet) { + TCHAR UIMsg[MAX_UIMSG]; + get_lang_msgT("DLG_TABSHEET_TITLE_CYGWIN", UIMsg, _countof(UIMsg), + _T("Cygwin"), ts.UILanguageFile); + m_psp.pszTitle = _tcsdup(UIMsg); + m_psp.dwFlags |= PSP_USETITLE; } CCygwinPropPageDlg::~CCygwinPropPageDlg() { - if (DlgCygwinFont != NULL) { - DeleteObject(DlgCygwinFont); - } + free((void *)m_psp.pszTitle); } -BEGIN_MESSAGE_MAP(CCygwinPropPageDlg, CPropertyPage) -END_MESSAGE_MAP() - // CCygwinPropPageDlg \x83\x81\x83b\x83Z\x81[\x83W \x83n\x83\x93\x83h\x83\x89 -BOOL CCygwinPropPageDlg::OnInitDialog() +void CCygwinPropPageDlg::OnInitDialog() { - char uimsg[MAX_UIMSG]; - CButton *btn; + TTCPropertyPage::OnInitDialog(); - CPropertyPage::OnInitDialog(); + static const DlgTextInfo TextInfos[] = { + { IDC_CYGWIN_PATH_LABEL, "DLG_TAB_CYGWIN_PATH" } + }; + SetDlgTexts(m_hWnd, TextInfos, _countof(TextInfos), ts.UILanguageFile); - font = (HFONT)SendMessage(WM_GETFONT, 0, 0); - GetObject(font, sizeof(LOGFONT), &logfont); - if (get_lang_font("DLG_TAHOMA_FONT", GetSafeHwnd(), &logfont, &DlgCygwinFont, ts.UILanguageFile)) { - SendDlgItemMessage(IDC_CYGWIN_PATH_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_CYGWIN_PATH, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_SELECT_FILE, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_CYGWIN, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_TERM_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_TERM_EDIT, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_TERMTYPE_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_TERM_TYPE, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_PORTSTART_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_PORT_START, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_PORTRANGE_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_PORT_RANGE, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_SHELL_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_SHELL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_ENV1_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_ENV1, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_ENV2_LABEL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_ENV2, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_LOGIN_SHELL, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_HOME_CHDIR, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0)); - SendDlgItemMessage(IDC_AGENT_PROXY, WM_SETFONT, (WPARAM)DlgCygwinFont, MAKELPARAM(TRUE,0)); - } - else { - DlgCygwinFont = NULL; - } + memcpy(&settings, &ts.CygtermSettings, sizeof(cygterm_t)); - GetDlgItemText(IDC_CYGWIN_PATH_LABEL, uimsg, sizeof(uimsg)); - get_lang_msg("DLG_TAB_CYGWIN_PATH", ts.UIMsg, sizeof(ts.UIMsg), uimsg, ts.UILanguageFile); - SetDlgItemText(IDC_CYGWIN_PATH_LABEL, ts.UIMsg); + SetDlgItemTextA(IDC_TERM_EDIT, settings.term); + SetDlgItemTextA(IDC_TERM_TYPE, settings.term_type); + SetDlgItemTextA(IDC_PORT_START, settings.port_start); + SetDlgItemTextA(IDC_PORT_RANGE, settings.port_range); + SetDlgItemTextA(IDC_SHELL, settings.shell); + SetDlgItemTextA(IDC_ENV1, settings.env1); + SetDlgItemTextA(IDC_ENV2, settings.env2); - memcpy(&settings, &ts.CygtermSettings, sizeof(cygterm_t)); + SetCheck(IDC_LOGIN_SHELL, settings.login_shell); + SetCheck(IDC_HOME_CHDIR, settings.home_chdir); + SetCheck(IDC_AGENT_PROXY, settings.agent_proxy); - SetDlgItemText(IDC_TERM_EDIT, settings.term); - SetDlgItemText(IDC_TERM_TYPE, settings.term_type); - SetDlgItemText(IDC_PORT_START, settings.port_start); - SetDlgItemText(IDC_PORT_RANGE, settings.port_range); - SetDlgItemText(IDC_SHELL, settings.shell); - SetDlgItemText(IDC_ENV1, settings.env1); - SetDlgItemText(IDC_ENV2, settings.env2); - btn = (CButton *)GetDlgItem(IDC_LOGIN_SHELL); - btn->SetCheck(settings.login_shell); - btn = (CButton *)GetDlgItem(IDC_HOME_CHDIR); - btn->SetCheck(settings.home_chdir); - btn = (CButton *)GetDlgItem(IDC_AGENT_PROXY); - btn->SetCheck(settings.agent_proxy); - // Cygwin install path - SetDlgItemText(IDC_CYGWIN_PATH, ts.CygwinDirectory); + SetDlgItemTextA(IDC_CYGWIN_PATH, ts.CygwinDirectory); // \x83_\x83C\x83A\x83\x8D\x83O\x82Ƀt\x83H\x81[\x83J\x83X\x82Ă\xE9 ::SetFocus(::GetDlgItem(GetSafeHwnd(), IDC_CYGWIN_PATH)); - - return FALSE; } BOOL CCygwinPropPageDlg::OnCommand(WPARAM wParam, LPARAM lParam) @@ -1974,35 +1443,31 @@ // Cygwin install \x83f\x83B\x83\x8C\x83N\x83g\x83\x8A\x82̑I\x91\xF0\x83_\x83C\x83A\x83\x8D\x83O get_lang_msg("DIRDLG_CYGTERM_DIR_TITLE", ts.UIMsg, sizeof(ts.UIMsg), "Select Cygwin directory", ts.UILanguageFile); - GetDlgItemText(IDC_CYGWIN_PATH, buf, sizeof(buf)); + GetDlgItemTextA(IDC_CYGWIN_PATH, buf, sizeof(buf)); if (doSelectFolder(GetSafeHwnd(), buf2, sizeof(buf2), buf, ts.UIMsg)) { - SetDlgItemText(IDC_CYGWIN_PATH, buf2); + SetDlgItemTextA(IDC_CYGWIN_PATH, buf2); } return TRUE; } - return CPropertyPage::OnCommand(wParam, lParam); + return TTCPropertyPage::OnCommand(wParam, lParam); } void CCygwinPropPageDlg::OnOK() { - CButton *btn; - // writing to CygTerm config file - GetDlgItemText(IDC_TERM_EDIT, settings.term, sizeof(settings.term)); - GetDlgItemText(IDC_TERM_TYPE, settings.term_type, sizeof(settings.term_type)); - GetDlgItemText(IDC_PORT_START, settings.port_start, sizeof(settings.port_start)); - GetDlgItemText(IDC_PORT_RANGE, settings.port_range, sizeof(settings.port_range)); - GetDlgItemText(IDC_SHELL, settings.shell, sizeof(settings.shell)); - GetDlgItemText(IDC_ENV1, settings.env1, sizeof(settings.env1)); - GetDlgItemText(IDC_ENV2, settings.env2, sizeof(settings.env2)); - btn = (CButton *)GetDlgItem(IDC_LOGIN_SHELL); - settings.login_shell = btn->GetCheck(); - btn = (CButton *)GetDlgItem(IDC_HOME_CHDIR); - settings.home_chdir = btn->GetCheck(); - btn = (CButton *)GetDlgItem(IDC_AGENT_PROXY); - settings.agent_proxy = btn->GetCheck(); + GetDlgItemTextA(IDC_TERM_EDIT, settings.term, sizeof(settings.term)); + GetDlgItemTextA(IDC_TERM_TYPE, settings.term_type, sizeof(settings.term_type)); + GetDlgItemTextA(IDC_PORT_START, settings.port_start, sizeof(settings.port_start)); + GetDlgItemTextA(IDC_PORT_RANGE, settings.port_range, sizeof(settings.port_range)); + GetDlgItemTextA(IDC_SHELL, settings.shell, sizeof(settings.shell)); + GetDlgItemTextA(IDC_ENV1, settings.env1, sizeof(settings.env1)); + GetDlgItemTextA(IDC_ENV2, settings.env2, sizeof(settings.env2)); + settings.login_shell = GetCheck(IDC_LOGIN_SHELL); + settings.home_chdir = GetCheck(IDC_HOME_CHDIR); + settings.agent_proxy = GetCheck(IDC_AGENT_PROXY); + memcpy(&ts.CygtermSettings, &settings, sizeof(cygterm_t)); // \x90ݒ\xE8\x82\xF0\x8F\x91\x82\xAB\x8D\x9E\x82ނ\xBD\x82߃t\x83\x89\x83O\x82𗧂ĂĂ\xA8\x82\xAD\x81B @@ -2009,93 +1474,44 @@ ts.CygtermSettings.update_flag = TRUE; // Cygwin install path - GetDlgItemText(IDC_CYGWIN_PATH, ts.CygwinDirectory, sizeof(ts.CygwinDirectory)); + GetDlgItemTextA(IDC_CYGWIN_PATH, ts.CygwinDirectory, sizeof(ts.CygwinDirectory)); } - - // CAddSettingPropSheetDlg - -IMPLEMENT_DYNAMIC(CAddSettingPropSheetDlg, CPropertySheet) - -CAddSettingPropSheetDlg::CAddSettingPropSheetDlg(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage) - :CPropertySheet(nIDCaption, pParentWnd, iSelectPage) +CAddSettingPropSheetDlg::CAddSettingPropSheetDlg( + HINSTANCE hInstance, LPCTSTR pszCaption, HWND hParentWnd) : + TTCPropertySheet(hInstance, pszCaption, hParentWnd) { - AddPage(&m_GeneralPage); - AddPage(&m_SequencePage); - AddPage(&m_CopypastePage); - AddPage(&m_VisualPage); - AddPage(&m_LogPage); - AddPage(&m_CygwinPage); + m_GeneralPage = new CGeneralPropPageDlg(hInstance, this); + m_SequencePage = new CSequencePropPageDlg(hInstance, this); + m_CopypastePage = new CCopypastePropPageDlg(hInstance, this); + m_VisualPage = new CVisualPropPageDlg(hInstance, this); + m_LogPage = new CLogPropPageDlg(hInstance, this); + m_CygwinPage = new CCygwinPropPageDlg(hInstance, this); + + hPsp[0] = CreatePropertySheetPage(&m_GeneralPage->m_psp); + hPsp[1] = CreatePropertySheetPage(&m_SequencePage->m_psp); + hPsp[2] = CreatePropertySheetPage(&m_CopypastePage->m_psp); + hPsp[3] = CreatePropertySheetPage(&m_VisualPage->m_psp); + hPsp[4] = CreatePropertySheetPage(&m_LogPage->m_psp); + hPsp[5] = CreatePropertySheetPage(&m_CygwinPage->m_psp); + m_psh.nPages = 6; + m_psh.phpage = hPsp; - m_psh.dwFlags |= PSH_NOAPPLYNOW; + TCHAR UIMsg[MAX_UIMSG]; + get_lang_msgT("DLG_TABSHEET_TITLE", UIMsg, _countof(UIMsg), + pszCaption, ts.UILanguageFile); + m_psh.pszCaption = _tcsdup(UIMsg); } -CAddSettingPropSheetDlg::CAddSettingPropSheetDlg(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage) - :CPropertySheet(pszCaption, pParentWnd, iSelectPage) -{ - AddPage(&m_GeneralPage); - AddPage(&m_SequencePage); - AddPage(&m_CopypastePage); - AddPage(&m_VisualPage); - AddPage(&m_LogPage); - AddPage(&m_CygwinPage); - - m_psh.dwFlags |= PSH_NOAPPLYNOW; -} - CAddSettingPropSheetDlg::~CAddSettingPropSheetDlg() { + free((void*)m_psh.pszCaption); + delete m_GeneralPage; + delete m_SequencePage; + delete m_CopypastePage; + delete m_VisualPage; + delete m_LogPage; + delete m_CygwinPage; } - -BEGIN_MESSAGE_MAP(CAddSettingPropSheetDlg, CPropertySheet) -END_MESSAGE_MAP() - - -// CAddSettingPropSheetDlg \x83\x81\x83b\x83Z\x81[\x83W \x83n\x83\x93\x83h\x83\x89 - -BOOL CAddSettingPropSheetDlg::OnInitDialog() -{ - CPropertySheet::OnInitDialog(); - - get_lang_msg("DLG_TABSHEET_TITLE", ts.UIMsg, sizeof(ts.UIMsg), - "Tera Term: Additional settings", ts.UILanguageFile); - SetWindowText(ts.UIMsg); - - CTabCtrl *tab = GetTabControl(); - TCITEM tc; - tc.mask = TCIF_TEXT; - - get_lang_msg("DLG_TABSHEET_TITLE_GENERAL", ts.UIMsg, sizeof(ts.UIMsg), - "General", ts.UILanguageFile); - tc.pszText = ts.UIMsg; - tab->SetItem(0, &tc); - - get_lang_msg("DLG_TABSHEET_TITLE_SEQUENCE", ts.UIMsg, sizeof(ts.UIMsg), - "Control Sequence", ts.UILanguageFile); - tc.pszText = ts.UIMsg; - tab->SetItem(1, &tc); - - get_lang_msg("DLG_TABSHEET_TITLE_COPYPASTE", ts.UIMsg, sizeof(ts.UIMsg), - "Copy and Paste", ts.UILanguageFile); - tc.pszText = ts.UIMsg; - tab->SetItem(2, &tc); - - get_lang_msg("DLG_TABSHEET_TITLE_VISUAL", ts.UIMsg, sizeof(ts.UIMsg), - "Visual", ts.UILanguageFile); - tc.pszText = ts.UIMsg; - tab->SetItem(3, &tc); - - get_lang_msg("DLG_TABSHEET_TITLE_Log", ts.UIMsg, sizeof(ts.UIMsg), - "Log", ts.UILanguageFile); - tc.pszText = ts.UIMsg; - tab->SetItem(4, &tc); - - get_lang_msg("DLG_TABSHEET_TITLE_CYGWIN", ts.UIMsg, sizeof(ts.UIMsg), - "Cygwin", ts.UILanguageFile); - tc.pszText = ts.UIMsg; - tab->SetItem(5, &tc); - - return FALSE; -} Modified: trunk/teraterm/teraterm/addsetting.h =================================================================== --- trunk/teraterm/teraterm/addsetting.h 2019-03-28 16:09:45 UTC (rev 7524) +++ trunk/teraterm/teraterm/addsetting.h 2019-03-28 16:38:16 UTC (rev 7525) @@ -1,5 +1,5 @@ /* - * (C) 2008-2017 TeraTerm Project + * (C) 2008-2019 TeraTerm Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -28,191 +28,110 @@ #pragma once +#include "tmfc.h" #include "tt_res.h" #include "teraterm.h" - typedef struct { - char *name; + const char *name; LPCTSTR id; } mouse_cursor_t; +extern const mouse_cursor_t MouseCursor[]; - // General Page -class CGeneralPropPageDlg : public CPropertyPage +class CGeneralPropPageDlg : public TTCPropertyPage { - DECLARE_DYNAMIC(CGeneralPropPageDlg) - public: - CGeneralPropPageDlg(); + CGeneralPropPageDlg(HINSTANCE inst, TTCPropertySheet *sheet); virtual ~CGeneralPropPageDlg(); - BOOL OnInitDialog(); +private: + void OnInitDialog(); void OnOK(); - enum { IDD = IDD_TABSHEET_GENERAL }; - -private: - HFONT DlgGeneralFont; - LOGFONT logfont; - HFONT font; - -protected: - DECLARE_MESSAGE_MAP() }; - - // Control Sequence Page -class CSequencePropPageDlg : public CPropertyPage +class CSequencePropPageDlg : public TTCPropertyPage { - DECLARE_DYNAMIC(CSequencePropPageDlg) - public: - CSequencePropPageDlg(); + CSequencePropPageDlg(HINSTANCE inst, TTCPropertySheet *sheet); virtual ~CSequencePropPageDlg(); - BOOL OnInitDialog(); +private: + void OnInitDialog(); void OnOK(); - enum { IDD = IDD_TABSHEET_SEQUENCE }; - -private: - HFONT DlgSequenceFont; - LOGFONT logfont; - HFONT font; - -protected: - DECLARE_MESSAGE_MAP() - virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam); + BOOL OnCommand(WPARAM wParam, LPARAM lParam); }; - - // Copypaste Page -class CCopypastePropPageDlg : public CPropertyPage +class CCopypastePropPageDlg : public TTCPropertyPage { - DECLARE_DYNAMIC(CCopypastePropPageDlg) - public: - CCopypastePropPageDlg(); + CCopypastePropPageDlg(HINSTANCE inst, TTCPropertySheet *sheet); virtual ~CCopypastePropPageDlg(); - BOOL OnInitDialog(); +private: + void OnInitDialog(); void OnOK(); - enum { IDD = IDD_TABSHEET_COPYPASTE }; - -private: - HFONT DlgCopypasteFont; - LOGFONT logfont; - HFONT font; - -protected: - DECLARE_MESSAGE_MAP() - virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam); + BOOL OnCommand(WPARAM wParam, LPARAM lParam); }; - - // Visual Page -class CVisualPropPageDlg : public CPropertyPage +class CVisualPropPageDlg : public TTCPropertyPage { - DECLARE_DYNAMIC(CVisualPropPageDlg) - public: - CVisualPropPageDlg(); + CVisualPropPageDlg(HINSTANCE inst, TTCPropertySheet *sheet); virtual ~CVisualPropPageDlg(); - BOOL OnInitDialog(); +private: + void OnInitDialog(); void OnOK(); - + HBRUSH OnCtlColor(HDC hDC, HWND hWnd); enum { IDD = IDD_TABSHEET_VISUAL }; - -private: - HFONT DlgVisualFont; - LOGFONT logfont; - HFONT font; - -protected: - DECLARE_MESSAGE_MAP() - virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam); + BOOL OnCommand(WPARAM wParam, LPARAM lParam); + void SetupRGBbox(int index); }; - - // Log Page -class CLogPropPageDlg : public CPropertyPage +class CLogPropPageDlg : public TTCPropertyPage { - DECLARE_DYNAMIC(CLogPropPageDlg) - public: - CLogPropPageDlg(); + CLogPropPageDlg(HINSTANCE inst, TTCPropertySheet *sheet); virtual ~CLogPropPageDlg(); - BOOL OnInitDialog(); +private: + void OnInitDialog(); void OnOK(); - enum { IDD = IDD_TABSHEET_LOG }; - -private: - HFONT DlgLogFont; - LOGFONT logfont; - HFONT font; - -protected: - DECLARE_MESSAGE_MAP() - virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam); + BOOL OnCommand(WPARAM wParam, LPARAM lParam); }; - - // Cygwin Page -class CCygwinPropPageDlg : public CPropertyPage +class CCygwinPropPageDlg : public TTCPropertyPage { - DECLARE_DYNAMIC(CCygwinPropPageDlg) - public: - CCygwinPropPageDlg(); + CCygwinPropPageDlg(HINSTANCE inst, TTCPropertySheet *sheet); virtual ~CCygwinPropPageDlg(); - BOOL OnInitDialog(); +private: + void OnInitDialog(); void OnOK(); - enum { IDD = IDD_TABSHEET_CYGWIN }; - -private: - HFONT DlgCygwinFont; - LOGFONT logfont; - HFONT font; cygterm_t settings; - -protected: - DECLARE_MESSAGE_MAP() - virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam); + BOOL OnCommand(WPARAM wParam, LPARAM lParam); }; - - // Property Sheet -class CAddSettingPropSheetDlg : public CPropertySheet +class CAddSettingPropSheetDlg : public TTCPropertySheet { - DECLARE_DYNAMIC(CAddSettingPropSheetDlg) - public: - CAddSettingPropSheetDlg(UINT nIDCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0); - CAddSettingPropSheetDlg(LPCTSTR pszCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0); + CAddSettingPropSheetDlg(HINSTANCE hInstance, LPCTSTR pszCaption, HWND hParentWnd); virtual ~CAddSettingPropSheetDlg(); - BOOL OnInitDialog(); - private: - HFONT DlgAdditionalFont; - LOGFONT logfont; - HFONT font; - -protected: - DECLARE_MESSAGE_MAP() - -public: - CGeneralPropPageDlg m_GeneralPage; - CSequencePropPageDlg m_SequencePage; - CCopypastePropPageDlg m_CopypastePage; - CVisualPropPageDlg m_VisualPage; - CLogPropPageDlg m_LogPage; - CCygwinPropPageDlg m_CygwinPage; + HPROPSHEETPAGE hPsp[6]; + + CGeneralPropPageDlg *m_GeneralPage; + CSequencePropPageDlg *m_SequencePage; + CCopypastePropPageDlg *m_CopypastePage; + CVisualPropPageDlg *m_VisualPage; + CLogPropPageDlg *m_LogPage; + CCygwinPropPageDlg *m_CygwinPage; }; Modified: trunk/teraterm/teraterm/vtwin.cpp =================================================================== --- trunk/teraterm/teraterm/vtwin.cpp 2019-03-28 16:09:45 UTC (rev 7524) +++ trunk/teraterm/teraterm/vtwin.cpp 2019-03-28 16:38:16 UTC (rev 7525) @@ -116,9 +116,6 @@ static int AutoDisconnectedPort = -1; -// \x96{\x91̂\xCD addsetting.cpp -extern mouse_cursor_t MouseCursor[]; - #ifndef WM_IME_COMPOSITION #define WM_IME_COMPOSITION 0x010F #endif @@ -4568,11 +4565,10 @@ { DWORD ret; - CAddSettingPropSheetDlg CAddSetting("", CWnd::FromHandle(HVTWin)); - CAddSetting.EnableStackedTabs(FALSE); + CAddSettingPropSheetDlg CAddSetting(hInst, _T("Tera Term: Additional settings"), HVTWin); ret = CAddSetting.DoModal(); switch (ret) { - case -1: + case (DWORD)-1: case IDABORT: ret = GetLastError(); break;