Revision: 10334 https://osdn.net/projects/ttssh2/scm/svn/commits/10334 Author: zmatsuo Date: 2022-10-24 00:16:36 +0900 (Mon, 24 Oct 2022) Log Message: ----------- additional setting の visual タブに theme enable/disable を追加 Modified Paths: -------------- trunk/teraterm/common/tt_res.h trunk/teraterm/teraterm/addsetting.cpp trunk/teraterm/teraterm/theme.h trunk/teraterm/teraterm/themefile.cpp trunk/teraterm/teraterm/ttermpro.rc trunk/teraterm/teraterm/vtdisp.c -------------- next part -------------- Modified: trunk/teraterm/common/tt_res.h =================================================================== --- trunk/teraterm/common/tt_res.h 2022-10-23 15:16:26 UTC (rev 10333) +++ trunk/teraterm/common/tt_res.h 2022-10-23 15:16:36 UTC (rev 10334) @@ -229,6 +229,7 @@ #define IDC_THEME_BUTTON 2610 #define IDC_THEME_EDIT 2611 #define IDC_THEME_EDITOR_BUTTON 2612 +#define IDC_THEME_ENABLE 2613 #define ID_ACC_SENDBREAK 50001 #define ID_ACC_COPY 50002 #define ID_ACC_NEWCONNECTION 50003 @@ -328,7 +329,7 @@ #define _APS_NO_MFC 1 #define _APS_NEXT_RESOURCE_VALUE 132 #define _APS_NEXT_COMMAND_VALUE 52031 -#define _APS_NEXT_CONTROL_VALUE 2620 +#define _APS_NEXT_CONTROL_VALUE 2614 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif Modified: trunk/teraterm/teraterm/addsetting.cpp =================================================================== --- trunk/teraterm/teraterm/addsetting.cpp 2022-10-23 15:16:26 UTC (rev 10333) +++ trunk/teraterm/teraterm/addsetting.cpp 2022-10-23 15:16:36 UTC (rev 10334) @@ -814,6 +814,8 @@ } } + SetCheck(IDC_THEME_ENABLE, ThemeGetEnable() ? BST_CHECKED : BST_UNCHECKED); + // \x83_\x83C\x83A\x83\x8D\x83O\x82Ƀt\x83H\x81[\x83J\x83X\x82Ă\xE9 ::SetFocus(GetDlgItem(IDC_ALPHA_BLEND_ACTIVE)); @@ -1073,7 +1075,6 @@ void CVisualPropPageDlg::OnOK() { int sel; - int flag_changed = 0; int i; // (1) @@ -1229,10 +1230,14 @@ } } - if (flag_changed) { - // re-launch - // RestartTeraTerm(GetSafeHwnd(), &ts); + if ((GetCheck(IDC_THEME_ENABLE) == BST_CHECKED) && ThemeGetEnable() == FALSE) { + // \x83e\x81[\x83}\x82\xF0enable\x82ɂ\xB7\x82\xE9 + ThemeSetEnable(TRUE); } + else if ((GetCheck(IDC_THEME_ENABLE) == BST_UNCHECKED) && ThemeGetEnable() == TRUE) { + // \x83e\x81[\x83}\x82\xF0disable\x82ɂ\xB7\x82\xE9 + ThemeSetEnable(FALSE); + } } void CVisualPropPageDlg::OnHelp() Modified: trunk/teraterm/teraterm/theme.h =================================================================== --- trunk/teraterm/teraterm/theme.h 2022-10-23 15:16:26 UTC (rev 10333) +++ trunk/teraterm/teraterm/theme.h 2022-10-23 15:16:36 UTC (rev 10334) @@ -100,6 +100,8 @@ } BG_PATTERN_ST; // setting / themefile.cpp +void ThemeSetEnable(BOOL enable); +BOOL ThemeGetEnable(void); const BG_PATTERN_ST *ThemeBGPatternList(int index); // file / themefile.cpp Modified: trunk/teraterm/teraterm/themefile.cpp =================================================================== --- trunk/teraterm/teraterm/themefile.cpp 2022-10-23 15:16:26 UTC (rev 10333) +++ trunk/teraterm/teraterm/themefile.cpp 2022-10-23 15:16:36 UTC (rev 10334) @@ -445,7 +445,6 @@ } else { bg_theme->BGDest.file[0] = 0; - bg_theme->BGDest.type = BG_NONE; // \x94w\x8Ci\x89摜\x96\xB3\x82\xB5 } // Src1 \x82̓ǂݏo\x82\xB5 @@ -453,8 +452,6 @@ bg_theme->BGSrc1.pattern = BGGetPattern(section, L"BGSrc1Pattern", bg_theme->BGSrc1.pattern, file); bg_theme->BGSrc1.antiAlias = BGGetOnOff(section, L"BGSrc1AntiAlias", bg_theme->BGSrc1.antiAlias, file); bg_theme->BGSrc1.alpha = 255 - GetPrivateProfileIntW(section, L"BGPictureTone", 255 - bg_theme->BGSrc1.alpha, file); - if (bg_theme->BGDest.file[0] == 0) - bg_theme->BGSrc1.alpha = 255; bg_theme->BGSrc1.alpha = GetPrivateProfileIntW(section, L"BGSrc1Alpha", bg_theme->BGSrc1.alpha, file); bg_theme->BGSrc1.color = BGGetColor(section, L"BGSrc1Color", bg_theme->BGSrc1.color, file); GetPrivateProfileStringW(section, L"BGSrc1File", bg_theme->BGSrc1.file, pathW, _countof(pathW), file); Modified: trunk/teraterm/teraterm/ttermpro.rc =================================================================== --- trunk/teraterm/teraterm/ttermpro.rc 2022-10-23 15:16:26 UTC (rev 10333) +++ trunk/teraterm/teraterm/ttermpro.rc 2022-10-23 15:16:36 UTC (rev 10334) @@ -181,12 +181,13 @@ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,148,171,124,12 CONTROL "Enable A&NSI color",IDC_ENABLE_ANSI_COLOR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,148,183,124,12 LTEXT "Theme",IDC_STATIC,5,163,68,8 - PUSHBUTTON "Theme Editor",IDC_THEME_EDITOR_BUTTON,15,179,50,14 - CONTROL "FastSizeMove",IDC_CHECK_FAST_SIZE_MOVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,197,122,12 - LTEXT "startup",IDC_STATIC,15,215,23,8 - COMBOBOX IDC_THEME_FILE,14,229,120,55,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - EDITTEXT IDC_THEME_EDIT,14,245,269,14,ES_AUTOHSCROLL - PUSHBUTTON "...",IDC_THEME_BUTTON,287,245,14,14 + CONTROL "Enable",IDC_THEME_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,178,122,10 + PUSHBUTTON "Theme Editor",IDC_THEME_EDITOR_BUTTON,15,195,50,14 + CONTROL "FastSizeMove",IDC_CHECK_FAST_SIZE_MOVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,213,122,12 + LTEXT "startup",IDC_STATIC,15,231,23,8 + 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 END IDD_TABSHEET_LOG DIALOGEX 0, 0, 258, 188 @@ -404,7 +405,7 @@ VERTGUIDE, 148 VERTGUIDE, 272 TOPMARGIN, 5 - BOTTOMMARGIN, 279 + BOTTOMMARGIN, 291 END IDD_TABSHEET_LOG, DIALOG Modified: trunk/teraterm/teraterm/vtdisp.c =================================================================== --- trunk/teraterm/teraterm/vtdisp.c 2022-10-23 15:16:26 UTC (rev 10333) +++ trunk/teraterm/teraterm/vtdisp.c 2022-10-23 15:16:36 UTC (rev 10334) @@ -166,6 +166,11 @@ static BOOL (WINAPI *BGAlphaBlend)(HDC,int,int,int,int,HDC,int,int,int,int,BLENDFUNCTION); +typedef struct { + BOOL bg_enable; +} vtdisp_work_t; +static vtdisp_work_t vtdisp_work; + static HBITMAP GetBitmapHandle(const char *File); static void InitColorTable(const COLORREF *ANSIColor16); static void UpdateBGBrush(void); @@ -897,6 +902,8 @@ HRGN hRgn; int x; int y; + (void)hMonitor; + (void)hdcMonitor; LoadWallpaperStruct *lws = (LoadWallpaperStruct*)dwData; @@ -1174,6 +1181,8 @@ */ static void DecideBGEnable(void) { + vtdisp_work_t *w = &vtdisp_work; + // \x94w\x8Ci\x89摜\x83`\x83F\x83b\x83N if (BGDest.file[0] == 0) { // \x94w\x8Ci\x89摜\x82͎g\x97p\x82\xB5\x82Ȃ\xA2 @@ -1195,9 +1204,11 @@ if (BGDest.type == BG_NONE && BGSrc1.type == BG_NONE && BGSrc2.type == BG_NONE) { // BG\x82͎g\x97p\x82\xB5\x82Ȃ\xA2 BGEnable = FALSE; + w->bg_enable = FALSE; } else { BGEnable = TRUE; + w->bg_enable = TRUE; } } @@ -1425,6 +1436,7 @@ { HDC TmpDC; BOOL bMultiDisplaySupport = FALSE; + vtdisp_work_t *w = &vtdisp_work; TmpDC = GetDC(NULL); @@ -1484,6 +1496,8 @@ if ( ts.TEKPos.x < VirtualScreen.left ) ts.TEKPos.x = VirtualScreen.left; if ( ts.TEKPos.y < VirtualScreen.top ) ts.TEKPos.y = VirtualScreen.top; } + + w->bg_enable = FALSE; } void EndDisp(void) @@ -3737,3 +3751,22 @@ { ThemeGetColorDefaultTS(&ts, color_theme); } + +void ThemeSetEnable(BOOL enable) +{ + vtdisp_work_t *w = &vtdisp_work; + if (enable) { + DecideBGEnable(); + w->bg_enable = BGEnable; + } + else { + w->bg_enable = FALSE; + BGEnable = FALSE; + } +} + +BOOL ThemeGetEnable(void) +{ + vtdisp_work_t *w = &vtdisp_work; + return w->bg_enable; +}