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