[ttssh2-commit] [10334] additional setting の visual タブに theme enable/disable を追加

Back to archive index
scmno****@osdn***** scmno****@osdn*****
2022年 10月 24日 (月) 00:16:37 JST


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;
+}


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