• R/O
  • SSH
  • HTTPS

ttssh2: Commit


Commit MetaInfo

Revision10280 (tree)
Time2022-09-21 23:25:06
Authorzmatsuo

Log Message

色の設定を行ったとき表示に反映するか確認するようにした

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

Change Summary

Incremental Difference

--- trunk/teraterm/teraterm/addsetting.cpp (revision 10279)
+++ trunk/teraterm/teraterm/addsetting.cpp (revision 10280)
@@ -616,6 +616,8 @@
616616 void OnHScroll(UINT nSBCode, UINT nPos, HWND pScrollBar);
617617 void SetupRGBbox(int index);
618618 void OnHelp();
619+ BOOL CheckColorChanged();
620+ BOOL CheckThemeColor();
619621 CTipWin* TipWin;
620622 COLORREF ANSIColor[16];
621623 };
@@ -1025,6 +1027,40 @@
10251027 return TTCPropertyPage::OnCtlColor(hDC, hWnd);
10261028 }
10271029
1030+/**
1031+ * 色の設定を変更したかチェックする
1032+ * @retval TRUE 変更した
1033+ * @retval FALSE 変更していない
1034+ */
1035+BOOL CVisualPropPageDlg::CheckColorChanged()
1036+{
1037+ for (int i = 0; i < 16; i++) {
1038+ if (ts.ANSIColor[i] != ANSIColor[i]) {
1039+ return TRUE;
1040+ }
1041+ }
1042+ return FALSE;
1043+}
1044+
1045+/**
1046+ * テーマカラーが設定してあるかチェックする
1047+ * @retval TRUE 設定されている
1048+ * @retval FALSE 設定されていない
1049+ */
1050+BOOL CVisualPropPageDlg::CheckThemeColor()
1051+{
1052+ TColorTheme def; // default color (=ts.ANSIColor[])
1053+ ThemeGetColorDefault(&def);
1054+ TColorTheme disp; // 今表示されている色
1055+ ThemeGetColor(&disp);
1056+ for (int i = 0; i < 16; i++) {
1057+ if (disp.ansicolor.color[i] != def.ansicolor.color[i]) {
1058+ return TRUE;
1059+ }
1060+ }
1061+ return FALSE;
1062+}
1063+
10281064 void CVisualPropPageDlg::OnOK()
10291065 {
10301066 int sel;
@@ -1144,14 +1180,36 @@
11441180 ts.EtermLookfeel.BGNoCopyBits = GetCheck(IDC_CHECK_FLICKER_LESS_MOVE);
11451181
11461182 // ANSI Color
1147- TColorTheme color;
1148- // 色(デフォルト色)を設定
1149- for (i = 0; i < 16; i++) {
1150- ts.ANSIColor[i] = ANSIColor[i];
1183+ if (CheckColorChanged()) {
1184+ // 色の変更が行われた
1185+ bool set_color = TRUE;
1186+
1187+ // カラーテーマを使って色が変更されている?
1188+ if (CheckThemeColor()) {
1189+ static const TTMessageBoxInfoW info = {
1190+ "Tera Term",
1191+ "MSG_TT_NOTICE", L"Tera Term: Notice",
1192+ NULL, L"Color settings have been changed.\nDo you want to display this?",
1193+ MB_ICONQUESTION | MB_YESNO };
1194+ int r = TTMessageBoxW(m_hWnd, &info, ts.UILanguageFileW);
1195+ if (r == IDNO) {
1196+ set_color = FALSE;
1197+ }
1198+ }
1199+
1200+ // 色を設定(デフォルト色)に反映
1201+ for (i = 0; i < 16; i++) {
1202+ ts.ANSIColor[i] = ANSIColor[i];
1203+ }
1204+
1205+ // 設定された色を表示に反映
1206+ if (set_color) {
1207+ TColorTheme color;
1208+ // デフォルト色を設定する
1209+ ThemeGetColorDefault(&color);
1210+ ThemeSetColor(&color);
1211+ }
11511212 }
1152- // デフォルト色を設定する
1153- ThemeGetColorDefault(&color);
1154- ThemeSetColor(&color);
11551213
11561214 if (flag_changed) {
11571215 // re-launch
Show on old repository browser