[ttssh2-commit] [10280] 色の設定を行ったとき表示に反映するか確認するようにした

Back to archive index
scmno****@osdn***** scmno****@osdn*****
2022年 9月 21日 (水) 23:25:06 JST


Revision: 10280
          https://osdn.net/projects/ttssh2/scm/svn/commits/10280
Author:   zmatsuo
Date:     2022-09-21 23:25:06 +0900 (Wed, 21 Sep 2022)
Log Message:
-----------
色の設定を行ったとき表示に反映するか確認するようにした

- ANSI Colorの変更を行って、カラーテーマを設定していた時
- その他の時は確認は行われない

Modified Paths:
--------------
    trunk/teraterm/teraterm/addsetting.cpp

-------------- next part --------------
Modified: trunk/teraterm/teraterm/addsetting.cpp
===================================================================
--- trunk/teraterm/teraterm/addsetting.cpp	2022-09-20 14:57:58 UTC (rev 10279)
+++ trunk/teraterm/teraterm/addsetting.cpp	2022-09-21 14:25:06 UTC (rev 10280)
@@ -616,6 +616,8 @@
 	void OnHScroll(UINT nSBCode, UINT nPos, HWND pScrollBar);
 	void SetupRGBbox(int index);
 	void OnHelp();
+	BOOL CheckColorChanged();
+	BOOL CheckThemeColor();
 	CTipWin* TipWin;
 	COLORREF ANSIColor[16];
 };
@@ -1025,6 +1027,40 @@
 	return TTCPropertyPage::OnCtlColor(hDC, hWnd);
 }
 
+/**
+ *	\x90F\x82̐ݒ\xE8\x82\xF0\x95ύX\x82\xB5\x82\xBD\x82\xA9\x83`\x83F\x83b\x83N\x82\xB7\x82\xE9
+ *	@retval	TRUE	\x95ύX\x82\xB5\x82\xBD
+ *	@retval	FALSE	\x95ύX\x82\xB5\x82Ă\xA2\x82Ȃ\xA2
+ */
+BOOL CVisualPropPageDlg::CheckColorChanged()
+{
+	for (int i = 0; i < 16; i++) {
+		if (ts.ANSIColor[i] != ANSIColor[i]) {
+			return TRUE;
+		}
+	}
+	return FALSE;
+}
+
+/**
+ *	\x83e\x81[\x83}\x83J\x83\x89\x81[\x82\xAA\x90ݒ肵\x82Ă\xA0\x82邩\x83`\x83F\x83b\x83N\x82\xB7\x82\xE9
+ *	@retval	TRUE	\x90ݒ肳\x82\xEA\x82Ă\xA2\x82\xE9
+ *	@retval	FALSE	\x90ݒ肳\x82\xEA\x82Ă\xA2\x82Ȃ\xA2
+ */
+BOOL CVisualPropPageDlg::CheckThemeColor()
+{
+	TColorTheme def;	// default color (=ts.ANSIColor[])
+	ThemeGetColorDefault(&def);
+	TColorTheme disp;	// \x8D\xA1\x95\\x8E\xA6\x82\xB3\x82\xEA\x82Ă\xA2\x82\xE9\x90F
+	ThemeGetColor(&disp);
+	for (int i = 0; i < 16; i++) {
+		if (disp.ansicolor.color[i] != def.ansicolor.color[i]) {
+			return TRUE;
+		}
+	}
+	return FALSE;
+}
+
 void CVisualPropPageDlg::OnOK()
 {
 	int sel;
@@ -1144,14 +1180,36 @@
 	ts.EtermLookfeel.BGNoCopyBits = GetCheck(IDC_CHECK_FLICKER_LESS_MOVE);
 
 	// ANSI Color
-	TColorTheme color;
-	// \x90F(\x83f\x83t\x83H\x83\x8B\x83g\x90F)\x82\xF0\x90ݒ\xE8
-	for (i = 0; i < 16; i++) {
-		ts.ANSIColor[i] = ANSIColor[i];
+	if (CheckColorChanged()) {
+		// \x90F\x82̕ύX\x82\xAA\x8Ds\x82\xED\x82ꂽ
+		bool set_color = TRUE;
+
+		// \x83J\x83\x89\x81[\x83e\x81[\x83}\x82\xF0\x8Eg\x82\xC1\x82ĐF\x82\xAA\x95ύX\x82\xB3\x82\xEA\x82Ă\xA2\x82\xE9?
+		if (CheckThemeColor()) {
+			static const TTMessageBoxInfoW info = {
+				"Tera Term",
+				"MSG_TT_NOTICE", L"Tera Term: Notice",
+				NULL, L"Color settings have been changed.\nDo you want to display this?",
+				MB_ICONQUESTION | MB_YESNO };
+			int r = TTMessageBoxW(m_hWnd, &info, ts.UILanguageFileW);
+			if (r == IDNO) {
+				set_color = FALSE;
+			}
+		}
+
+		// \x90F\x82\xF0\x90ݒ\xE8(\x83f\x83t\x83H\x83\x8B\x83g\x90F)\x82ɔ\xBD\x89f
+		for (i = 0; i < 16; i++) {
+			ts.ANSIColor[i] = ANSIColor[i];
+		}
+
+		// \x90ݒ肳\x82ꂽ\x90F\x82\xF0\x95\\x8E\xA6\x82ɔ\xBD\x89f
+		if (set_color) {
+			TColorTheme color;
+			// \x83f\x83t\x83H\x83\x8B\x83g\x90F\x82\xF0\x90ݒ肷\x82\xE9
+			ThemeGetColorDefault(&color);
+			ThemeSetColor(&color);
+		}
 	}
-	// \x83f\x83t\x83H\x83\x8B\x83g\x90F\x82\xF0\x90ݒ肷\x82\xE9
-	ThemeGetColorDefault(&color);
-	ThemeSetColor(&color);
 
 	if (flag_changed) {
 		// re-launch


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