[ttssh2-commit] [10404] Susie Plugin Pathを設定できるようにした

Back to archive index
scmno****@osdn***** scmno****@osdn*****
2022年 12月 11日 (日) 21:08:18 JST


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


ttssh2-commit メーリングリストの案内
Back to archive index