Revision: 10404 https://osdn.net/projects/ttssh2/scm/svn/commits/10404 Author: zmatsuo Date: 2022-12-11 21:08:18 +0900 (Sun, 11 Dec 2022) Log Message: ----------- Susie Plugin Pathを設定できるようにした Modified Paths: -------------- trunk/teraterm/common/tt_res.h trunk/teraterm/teraterm/addsetting.cpp trunk/teraterm/teraterm/ttermpro.rc -------------- next part -------------- Modified: trunk/teraterm/common/tt_res.h =================================================================== --- trunk/teraterm/common/tt_res.h 2022-12-11 12:08:07 UTC (rev 10403) +++ trunk/teraterm/common/tt_res.h 2022-12-11 12:08:18 UTC (rev 10404) @@ -237,6 +237,9 @@ #define IDC_NOTIFY_SOUND 2618 #define IDC_NOTIFICATION_TEST_POPUP 2619 #define IDC_NOTIFICATION_TEST_TRAY 2620 +#define IDC_SPIPATH_TITLE 2621 +#define IDC_SPIPATH_EDIT 2622 +#define IDC_SPIPATH_BUTTON 2623 #define ID_ACC_SENDBREAK 50001 #define ID_ACC_COPY 50002 #define ID_ACC_NEWCONNECTION 50003 @@ -336,7 +339,7 @@ #define _APS_NO_MFC 1 #define _APS_NEXT_RESOURCE_VALUE 132 #define _APS_NEXT_COMMAND_VALUE 52031 -#define _APS_NEXT_CONTROL_VALUE 2621 +#define _APS_NEXT_CONTROL_VALUE 2624 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif Modified: trunk/teraterm/teraterm/addsetting.cpp =================================================================== --- trunk/teraterm/teraterm/addsetting.cpp 2022-12-11 12:08:07 UTC (rev 10403) +++ trunk/teraterm/teraterm/addsetting.cpp 2022-12-11 12:08:18 UTC (rev 10404) @@ -592,26 +592,23 @@ case IDC_CONFIRM_STRING_FILE_PATH | (BN_CLICKED << 16): { - wchar_t fileW[_countof(ts.ConfirmChangePasteStringFile)]; - MultiByteToWideChar(CP_ACP, 0, ts.ConfirmChangePasteStringFile, -1, fileW, _countof(fileW)); + wchar_t *def; + hGetDlgItemTextW(m_hWnd, IDC_CONFIRM_STRING_FILE, &def); - OPENFILENAMEW ofn; - - memset(&ofn, 0, sizeof(ofn)); - ofn.lStructSize = get_OPENFILENAME_SIZEW(); - ofn.hwndOwner = GetSafeHwnd(); + TTOPENFILENAMEW ofn = {}; + ofn.hwndOwner = m_hWnd;GetSafeHwnd(); ofn.lpstrFilter = TTGetLangStrW("Tera Term", "FILEDLG_SELECT_CONFIRM_STRING_APP_FILTER", L"txt(*.txt)\\0*.txt\\0all(*.*)\\0*.*\\0\\0", ts.UILanguageFile); - ofn.lpstrFile = fileW; - ofn.nMaxFile = _countof(fileW); + ofn.lpstrFile = def; ofn.lpstrTitle = TTGetLangStrW("Tera Term", "FILEDLG_SELECT_CONFIRM_STRING_APP_TITLE", L"Choose a file including strings for ConfirmChangePaste", ts.UILanguageFile); + ofn.lpstrInitialDir = ts.HomeDirW; ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; - BOOL ok = GetOpenFileNameW(&ofn); + wchar_t *filename; + BOOL ok = TTGetOpenFileNameW(&ofn, &filename); if (ok) { - char *file = ToCharW(fileW); - strncpy_s(ts.ConfirmChangePasteStringFile, sizeof(ts.ConfirmChangePasteStringFile), file, _TRUNCATE); - free(file); - SetDlgItemTextA(IDC_CONFIRM_STRING_FILE, ts.ConfirmChangePasteStringFile); + SetDlgItemTextW(IDC_CONFIRM_STRING_FILE, filename); + free(filename); } + free(def); free((void *)ofn.lpstrFilter); free((void *)ofn.lpstrTitle); } @@ -899,6 +896,8 @@ SetCheck(IDC_THEME_ENABLE, ThemeGetEnable() ? BST_CHECKED : BST_UNCHECKED); + SetDlgItemTextW(IDC_SPIPATH_EDIT, ts.EtermLookfeel.BGSPIPathW); + // \x83_\x83C\x83A\x83\x8D\x83O\x82Ƀt\x83H\x81[\x83J\x83X\x82Ă\xE9 ::SetFocus(GetDlgItem(IDC_ALPHA_BLEND_ACTIVE)); @@ -982,35 +981,27 @@ } case IDC_THEME_BUTTON | (BN_CLICKED << 16): { // \x83e\x81[\x83}\x83t\x83@\x83C\x83\x8B\x82\xF0\x91I\x91\xF0\x82\xB7\x82\xE9 - OPENFILENAMEW ofn = {}; - wchar_t szFile[MAX_PATH]; - wchar_t *curdir; + wchar_t *theme_file; + hGetDlgItemTextW(m_hWnd, IDC_THEME_EDIT, &theme_file); + wchar_t *theme_dir; - hGetCurrentDirectoryW(&curdir); - - if (GetFileAttributesW(ts.EtermLookfeel.BGThemeFileW) != INVALID_FILE_ATTRIBUTES) { - wcsncpy_s(szFile, _countof(szFile), ts.EtermLookfeel.BGThemeFileW, _TRUNCATE); - } else { - szFile[0] = 0; - } - aswprintf(&theme_dir, L"%s\\theme", ts.HomeDirW); - ofn.lStructSize = get_OPENFILENAME_SIZEW(); - ofn.hwndOwner = GetSafeHwnd(); + TTOPENFILENAMEW ofn = {}; + ofn.hwndOwner = m_hWnd; ofn.lpstrFilter = L"Theme Files(*.ini)\0*.ini\0All Files(*.*)\0*.*\0"; - ofn.lpstrFile = szFile; - ofn.nMaxFile = _countof(szFile); ofn.lpstrTitle = L"select theme file"; + ofn.lpstrFile = theme_file; ofn.lpstrInitialDir = theme_dir; ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; - BOOL ok = GetOpenFileNameW(&ofn); - SetCurrentDirectoryW(curdir); - free(curdir); - free(theme_dir); + wchar_t *filename; + BOOL ok = TTGetOpenFileNameW(&ofn, &filename); if (ok) { - SetDlgItemTextW(IDC_THEME_EDIT, szFile); + SetDlgItemTextW(IDC_THEME_EDIT, filename); + free(filename); } + free(theme_dir); + free(theme_file); return TRUE; } @@ -1102,6 +1093,34 @@ OpacityTooltip(TipWin, m_hWnd, IDC_ALPHA_BLEND_INACTIVE, pos, ts.UILanguageFileW); return TRUE; } + case IDC_SPIPATH_BUTTON | (BN_CLICKED << 16): { + wchar_t *def; + hGetDlgItemTextW(m_hWnd, IDC_SPIPATH_EDIT, &def); + if (GetFileAttributesW(def) == INVALID_FILE_ATTRIBUTES) { + // \x83t\x83H\x83\x8B\x83_\x82\xAA\x91\xB6\x8D݂\xB5\x82Ȃ\xA2(\x93\xFC\x97͓r\x92\x86?,TT4\x82\xA9\x82\xE7\x88ڍs?) + static const TTMessageBoxInfoW info = { + "Tera Term", + "MSG_TT_NOTICE", L"Tera Term: Notice", + NULL, L"'%s' not exist\nUse home folder", + MB_OK }; + TTMessageBoxW(m_hWnd, &info, ts.UILanguageFileW, def); + free(def); + def = _wcsdup(ts.HomeDirW); + } + + TTBROWSEINFOW bi = {}; + bi.hwndOwner = m_hWnd; + bi.lpszTitle = L"Select Susie Plugin path"; + bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_EDITBOX | BIF_NEWDIALOGSTYLE; + + wchar_t *folder; + if (TTSHBrowseForFolderW(&bi, def, &folder)) { + SetDlgItemTextW(IDC_SPIPATH_EDIT, folder); + free(folder); + } + free(def); + break; + } } return TTCPropertyPage::OnCommand(wParam, lParam); @@ -1321,6 +1340,11 @@ // \x83e\x81[\x83}\x82\xF0disable\x82ɂ\xB7\x82\xE9 ThemeSetEnable(FALSE); } + + wchar_t *spi_path; + hGetDlgItemTextW(m_hWnd, IDC_SPIPATH_EDIT, &spi_path); + free(ts.EtermLookfeel.BGSPIPathW); + ts.EtermLookfeel.BGSPIPathW = spi_path; } void CVisualPropPageDlg::OnHelp() @@ -1480,28 +1504,24 @@ switch (wParam) { case IDC_VIEWLOG_PATH | (BN_CLICKED << 16): { - wchar_t fileW[_countof(ts.ViewlogEditor)]; - MultiByteToWideChar(CP_ACP, 0, ts.ViewlogEditor, -1, fileW, _countof(fileW)); + wchar_t *editor; + hGetDlgItemTextW(m_hWnd, IDC_VIEWLOG_EDITOR, &editor); - OPENFILENAMEW ofn; - - memset(&ofn, 0, sizeof(ofn)); - ofn.lStructSize = get_OPENFILENAME_SIZEW(); - ofn.hwndOwner = GetSafeHwnd(); + TTOPENFILENAMEW ofn = {}; + ofn.hwndOwner = m_hWnd; ofn.lpstrFilter = TTGetLangStrW("Tera Term", "FILEDLG_SELECT_LOGVIEW_APP_FILTER", L"exe(*.exe)\\0*.exe\\0all(*.*)\\0*.*\\0\\0", ts.UILanguageFile); - ofn.lpstrFile = fileW; - ofn.nMaxFile = _countof(fileW); + ofn.lpstrFile = editor; ofn.lpstrTitle = TTGetLangStrW("Tera Term", "FILEDLG_SELECT_LOGVIEW_APP_TITLE", L"Choose a executing file with launching logging file", ts.UILanguageFile); ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; - BOOL ok = GetOpenFileNameW(&ofn); + wchar_t *filew; + BOOL ok = TTGetOpenFileNameW(&ofn, &filew); if (ok) { - char *file = ToCharW(fileW); - strncpy_s(ts.ViewlogEditor, sizeof(ts.ViewlogEditor), file, _TRUNCATE); - free(file); - SetDlgItemTextA(IDC_VIEWLOG_EDITOR, ts.ViewlogEditor); + SetDlgItemTextW(IDC_VIEWLOG_EDITOR, filew); + free(filew); } free((void *)ofn.lpstrFilter); free((void *)ofn.lpstrTitle); + free(editor); } return TRUE; Modified: trunk/teraterm/teraterm/ttermpro.rc =================================================================== --- trunk/teraterm/teraterm/ttermpro.rc 2022-12-11 12:08:07 UTC (rev 10403) +++ trunk/teraterm/teraterm/ttermpro.rc 2022-12-11 12:08:18 UTC (rev 10404) @@ -143,7 +143,7 @@ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,160,229,10 END -IDD_TABSHEET_VISUAL DIALOGEX 0, 0, 307, 282 +IDD_TABSHEET_VISUAL DIALOGEX 0, 0, 307, 312 STYLE DS_SETFONT | DS_CONTROL | WS_CHILD | WS_SYSMENU FONT 8, "Tahoma", 0, 0, 0x0 BEGIN @@ -198,6 +198,9 @@ COMBOBOX IDC_THEME_FILE,14,245,120,55,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP EDITTEXT IDC_THEME_EDIT,14,261,269,14,ES_AUTOHSCROLL PUSHBUTTON "...",IDC_THEME_BUTTON,287,261,14,14 + LTEXT "SPI path:",IDC_SPIPATH_TITLE,14,280,50,8 + EDITTEXT IDC_SPIPATH_EDIT,14,293,269,14,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_SPIPATH_BUTTON,287,293,14,14 END IDD_TABSHEET_LOG DIALOGEX 0, 0, 258, 188 @@ -415,6 +418,7 @@ VERTGUIDE, 148 VERTGUIDE, 272 TOPMARGIN, 5 + BOTTOMMARGIN, 307 END IDD_TABSHEET_LOG, DIALOG