From 18 Jan, 2021 0:00 UTC: All services will be temporary unavailable for maintenance
  • R/O
  • SSH
  • HTTPS

ttssh2: Commit


Commit MetaInfo

Revision8106 (tree)
Time2019-09-10 23:42:39
Author(del#24082)

Log Message

Eterm look-feel:
- 「壁紙と画像を混合する」を設定できるようにした。

-- teraterm.ini に BGIgnoreThemeFile エントリを追加した。デフォルトはoff。

- 壁紙と混合する画像ファイルをランダムに選択する際、無関係なファイルを選択することがある問題を修正した。

Change Summary

Incremental Difference

--- trunk/doc/en/html/about/history.html (revision 8105)
+++ trunk/doc/en/html/about/history.html (revision 8106)
@@ -44,11 +44,13 @@
4444 <li>Changed of indication from "Protocol" to "IP version" and from "UNSPEC" to "AUTO" on <a href="../menu/file-new.html">New connection dialog</a>.</li>
4545 <li>When the opacity value of the window is temporarily changed by operating the mouse wheel on the title bar of VT window, the tooltip of the opacity value is shown.</li>
4646 <li>The location of resizing toolchip is automatically moved to coordinates after resizing.</li>
47+ <li>Eterm look-feel: Added the <a href="../menu/setup-additional.html#MixedThemeFile">Mixed ThemeFile to Background</a> configuration. Also, added the the <a href="../setup/teraterm-ini.html#BGIgnoreThemeFile">BGIgnoreThemeFile</a> entry in the teraterm.ini file. The default value is off.</li>
4748 </ul>
4849 </li>
4950 <li>Bug fixes
5051 <ul>
5152 <li>The toolchip during resizing can not be displayed on the left and top edge of the desktop. This bug was introduced in 4.103.</li>
53+ <li>Eterm look-feel: When a image file is randomly selected with the wallpaper, invalid file may be selected. </li>
5254 </ul>
5355 </li>
5456
--- trunk/doc/en/html/menu/setup-additional.html (revision 8105)
+++ trunk/doc/en/html/menu/setup-additional.html (revision 8106)
@@ -277,6 +277,12 @@
277277 <strong>NOTICE: You need to save setup and restart Tera Term for enabling this settings.</strong>
278278 </dd>
279279
280+ <dt id="MixedThemeFile">Mixed ThemeFile to Background</dt>
281+ <dd>
282+ When the Eterm look-feel feature is enabled, you can specify whether to mix the wallpaper and the image of theme file. <br>
283+ Howerver, this option can not be used with Background Image at the same time. <br>
284+ </dd>
285+
280286 <dt>Background Image</dt>
281287 <dd>
282288 When the Eterm look-feel feature is enabled, an image file can be specified as background.
--- trunk/doc/en/html/setup/teraterm-ini.html (revision 8105)
+++ trunk/doc/en/html/setup/teraterm-ini.html (revision 8106)
@@ -56,6 +56,18 @@
5656 <td style="width:250px;">&lt;-</td>
5757 <td></td>
5858 </tr>
59+ <tr>
60+ <td id="BGThemeFile">BGThemeFile</td>
61+ <td style="width:250px;">theme\*.ini</td>
62+ <td style="width:250px;">&lt;-</td>
63+ <td></td>
64+ </tr>
65+ <tr>
66+ <td id="BGIgnoreThemeFile">BGIgnoreThemeFile</td>
67+ <td style="width:250px;">off</td>
68+ <td style="width:250px;">&lt;-</td>
69+ <td></td>
70+ </tr>
5971 </table>
6072
6173 <h2>Tera Term</h2>
--- trunk/doc/ja/html/about/history.html (revision 8105)
+++ trunk/doc/ja/html/about/history.html (revision 8106)
@@ -44,11 +44,13 @@
4444 <li><a href="../menu/file-new.html">New connectionダイアログ</a>の表記を「Protocol」から「IP version」に、「UNSPEC」を「AUTO」に変更した。</li>
4545 <li>VT ウィンドウのタイトルバー上でマウスホイールを操作してウィンドウの不透明度を一時的に変更するとき、不透明度をツールチップに表示するようにした。</li>
4646 <li>リサイズ中の縦横サイズツールチップの表示位置をリサイズ後の座標に追従するようにした。</li>
47+ <li>Eterm look-feel: <a href="../menu/setup-additional.html#MixedThemeFile">壁紙と画像を混合する</a>を設定できるようにした。teraterm.ini に <a href="../setup/teraterm-ini.html#BGIgnoreThemeFile">BGIgnoreThemeFile</a> エントリを追加した。デフォルトはoff。</li>
4748 </ul>
4849 </li>
4950 <li>バグ修正
5051 <ul>
5152 <li>リサイズ中の縦横サイズツールチップが、デスクトップの左端と上端で表示されなくなっていた問題を修正した。4.103でのエンバグ。</li>
53+ <li>Eterm look-feel: 壁紙と混合する画像ファイルをランダムに選択する際、無関係なファイルを選択することがある問題を修正した。</li>
5254 </ul>
5355 </li>
5456
--- trunk/doc/ja/html/menu/setup-additional.html (revision 8105)
+++ trunk/doc/ja/html/menu/setup-additional.html (revision 8106)
@@ -273,6 +273,12 @@
273273 Eterm風の半透明ウィンドウを使用することができます。<br>
274274 <strong>注意:設定を有効にするには、設定の保存とTera Termの再起動が必要です。</strong>
275275 </dd>
276+
277+ <dt id="MixedThemeFile">Mixed ThemeFile to Background</dt>
278+ <dd>
279+ Eterm lookfeel機能が有効の場合、壁紙とテーマファイルの画像を混合するかどうか指定できます。<br>
280+ なお、Background Imageとは同時に使用できません。
281+ </dd>
276282
277283 <dt>Background Image</dt>
278284 <dd>
--- trunk/doc/ja/html/setup/teraterm-ini.html (revision 8105)
+++ trunk/doc/ja/html/setup/teraterm-ini.html (revision 8106)
@@ -56,6 +56,18 @@
5656 <td style="width:250px;">&lt;-</td>
5757 <td></td>
5858 </tr>
59+ <tr>
60+ <td id="BGThemeFile">BGThemeFile</td>
61+ <td style="width:250px;">theme\*.ini</td>
62+ <td style="width:250px;">&lt;-</td>
63+ <td></td>
64+ </tr>
65+ <tr>
66+ <td id="BGIgnoreThemeFile">BGIgnoreThemeFile</td>
67+ <td style="width:250px;">off</td>
68+ <td style="width:250px;">&lt;-</td>
69+ <td></td>
70+ </tr>
5971 </table>
6072
6173 <h2>Tera Term</h2>
--- trunk/teraterm/common/teraterm.h (revision 8105)
+++ trunk/teraterm/common/teraterm.h (revision 8106)
@@ -65,6 +65,9 @@
6565 #define BG_THEME_IMAGE_BRIGHTNESS_DEFAULT 64
6666 #define BG_THEME_IMAGE_BRIGHTNESS1 "BGSrc1Alpha"
6767 #define BG_THEME_IMAGE_BRIGHTNESS2 "BGSrc2Alpha"
68+#define BG_THEME_IMAGEFILE_NAME "ImageFile.INI"
69+#define BG_THEME_THEMEFILE_SCALE "Scale.INI"
70+#define BG_THEME_THEMEFILE_TILE "Tile.INI"
6871
6972 // Added by 337 2006/03/01
7073 #define USE_NORMAL_BGCOLOR
--- trunk/teraterm/common/tttypes.h (revision 8105)
+++ trunk/teraterm/common/tttypes.h (revision 8106)
@@ -403,6 +403,7 @@
403403 int BGNoCopyBits;
404404 int BGNoFrame;
405405 char BGThemeFile[MAX_PATH];
406+ int BGIgnoreThemeFile;
406407 } eterm_lookfeel_t;
407408
408409 typedef struct cygterm {
--- trunk/teraterm/teraterm/addsetting.cpp (revision 8105)
+++ trunk/teraterm/teraterm/addsetting.cpp (revision 8106)
@@ -657,6 +657,7 @@
657657 { IDC_ALPHA_BLEND_ACTIVE_LABEL, "DLG_TAB_VISUAL_ALPHA_ACTIVE" },
658658 { IDC_ALPHA_BLEND_INACTIVE_LABEL, "DLG_TAB_VISUAL_ALPHA_INACTIVE" },
659659 { IDC_ETERM_LOOKFEEL, "DLG_TAB_VISUAL_ETERM" },
660+ { IDC_MIXED_THEME_FILE, "DLG_TAB_VISUAL_BGMIXED_THEMEFILE" },
660661 { IDC_BGIMG_CHECK, "DLG_TAB_VISUAL_BGIMG" },
661662 { IDC_BGIMG_BRIGHTNESS, "DLG_TAB_VISUAL_BGIMG_BRIGHTNESS" },
662663 { IDC_MOUSE, "DLG_TAB_VISUAL_MOUSE" },
@@ -704,11 +705,24 @@
704705 _snprintf_s(buf, sizeof(buf), _TRUNCATE, "%d", ts.BGImgBrightness);
705706 SetDlgItemNum(IDC_EDIT_BGIMG_BRIGHTNESS, ts.BGImgBrightness);
706707
708+ // BGEnable関係なく、チェックボックスを付ける。
709+ if (strcmp(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE) == 0) {
710+ SetCheck(IDC_BGIMG_CHECK, BST_CHECKED);
711+ } else {
712+ SetCheck(IDC_BGIMG_CHECK, BST_UNCHECKED);
713+ }
714+ // テーマファイルを無視する場合は壁紙と混合しない。
715+ if (ts.EtermLookfeel.BGIgnoreThemeFile) {
716+ SetCheck(IDC_MIXED_THEME_FILE, BST_UNCHECKED);
717+ } else {
718+ SetCheck(IDC_MIXED_THEME_FILE, BST_CHECKED);
719+ }
720+
707721 if (ts.EtermLookfeel.BGEnable) {
708722 EnableDlgItem(IDC_BGIMG_CHECK, TRUE);
723+ EnableDlgItem(IDC_MIXED_THEME_FILE, TRUE);
709724
710725 if (strcmp(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE) == 0) {
711- SetCheck(IDC_BGIMG_CHECK, BST_CHECKED);
712726 EnableDlgItem(IDC_BGIMG_EDIT, TRUE);
713727 EnableDlgItem(IDC_BGIMG_BUTTON, TRUE);
714728
@@ -715,7 +729,6 @@
715729 EnableDlgItem(IDC_BGIMG_BRIGHTNESS, TRUE);
716730 EnableDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS, TRUE);
717731 } else {
718- SetCheck(IDC_BGIMG_CHECK, BST_UNCHECKED);
719732 EnableDlgItem(IDC_BGIMG_EDIT, FALSE);
720733 EnableDlgItem(IDC_BGIMG_BUTTON, FALSE);
721734
@@ -722,6 +735,7 @@
722735 EnableDlgItem(IDC_BGIMG_BRIGHTNESS, FALSE);
723736 EnableDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS, FALSE);
724737 }
738+
725739 } else {
726740 EnableDlgItem(IDC_BGIMG_CHECK, FALSE);
727741 EnableDlgItem(IDC_BGIMG_EDIT, FALSE);
@@ -729,6 +743,8 @@
729743
730744 EnableDlgItem(IDC_BGIMG_BRIGHTNESS, FALSE);
731745 EnableDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS, FALSE);
746+
747+ EnableDlgItem(IDC_MIXED_THEME_FILE, FALSE);
732748 }
733749
734750 // (3)Mouse cursor type
@@ -797,6 +813,7 @@
797813 case IDC_ETERM_LOOKFEEL:
798814 // チェックされたら Enable/Disable をトグルする。
799815 if (GetCheck(IDC_ETERM_LOOKFEEL)) {
816+ EnableDlgItem(IDC_MIXED_THEME_FILE, TRUE);
800817 EnableDlgItem(IDC_BGIMG_CHECK, TRUE);
801818 if (GetCheck(IDC_BGIMG_CHECK)) {
802819 EnableDlgItem(IDC_BGIMG_EDIT, TRUE);
@@ -824,9 +841,18 @@
824841 // 背景画像も無効化する。
825842 SetDlgItemTextT(IDC_BGIMG_EDIT, _T(""));
826843 SetDlgItemInt(IDC_EDIT_BGIMG_BRIGHTNESS, BG_THEME_IMAGE_BRIGHTNESS_DEFAULT);
844+
845+ EnableDlgItem(IDC_MIXED_THEME_FILE, FALSE);
827846 }
828847 return TRUE;
829848
849+ case IDC_MIXED_THEME_FILE:
850+ if (GetCheck(IDC_MIXED_THEME_FILE)) {
851+ // 背景画像のチェックは外す。
852+ SetCheck(IDC_BGIMG_CHECK, BST_UNCHECKED);
853+ }
854+ return TRUE;
855+
830856 case IDC_BGIMG_CHECK:
831857 if (GetCheck(IDC_BGIMG_CHECK)) {
832858 EnableDlgItem(IDC_BGIMG_EDIT, TRUE);
@@ -836,6 +862,8 @@
836862 EnableDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS, TRUE);
837863
838864 strncpy_s(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE, sizeof(ts.EtermLookfeel.BGThemeFile));
865+ // 混合のチェックは外す。
866+ SetCheck(IDC_MIXED_THEME_FILE, BST_UNCHECKED);
839867 } else {
840868 EnableDlgItem(IDC_BGIMG_EDIT, FALSE);
841869 EnableDlgItem(IDC_BGIMG_BUTTON, FALSE);
@@ -982,6 +1010,27 @@
9821010 (i > 255) ? 255 : i;
9831011 }
9841012
1013+ // テーマファイルを最終設定する。
1014+ if (ts.EtermLookfeel.BGEnable) {
1015+ if (GetCheck(IDC_BGIMG_CHECK)) {
1016+ strncpy_s(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE, sizeof(ts.EtermLookfeel.BGThemeFile));
1017+ } else {
1018+ strncpy_s(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE_DEFAULT, sizeof(ts.EtermLookfeel.BGThemeFile));
1019+ }
1020+ if (GetCheck(IDC_MIXED_THEME_FILE)) {
1021+ // 壁紙と混合の場合、デフォルトに戻しておく。
1022+ ts.EtermLookfeel.BGIgnoreThemeFile = FALSE;
1023+ } else {
1024+ // テーマファイルを無視する。
1025+ ts.EtermLookfeel.BGIgnoreThemeFile = TRUE;
1026+ }
1027+
1028+ } else {
1029+ // BGが無効の場合はデフォルトに戻しておく。
1030+ strncpy_s(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE_DEFAULT, sizeof(ts.EtermLookfeel.BGThemeFile));
1031+ }
1032+
1033+
9851034 // (3)
9861035 sel = GetCurSel(IDC_MOUSE_CURSOR);
9871036 if (sel >= 0 && sel < MOUSE_CURSOR_MAX) {
--- trunk/teraterm/teraterm/vtdisp.c (revision 8105)
+++ trunk/teraterm/teraterm/vtdisp.c (revision 8106)
@@ -411,6 +411,15 @@
411411 strncpy_s(tmp,tmplen,fullpath,filePart - fullpath);
412412 strncpy_s(filename,destlen,tmp,_TRUNCATE);
413413 }
414+
415+ // アドホックではあるが、ImageFile.INIなら別名にする。
416+ // ImageFile.INIはテーマファイルとして使えないため。
417+ if (strcmp(filespec_src, BG_THEME_IMAGEFILE_DEFAULT) == 0) {
418+ if (strcmp(fd.cFileName, BG_THEME_IMAGEFILE_NAME) == 0) {
419+ _snprintf_s(fd.cFileName, sizeof(fd.cFileName), _TRUNCATE, "%s", BG_THEME_THEMEFILE_SCALE);
420+ }
421+ }
422+
414423 strncat_s(filename,destlen,fd.cFileName,_TRUNCATE);
415424 }
416425
@@ -1463,10 +1472,21 @@
14631472 DeleteFile(BGSrc2.fileTmp);
14641473 }
14651474
1466-void BGInitialize(void)
1475+/*
1476+ * Eterm lookfeel機能による初期化処理
1477+ *
1478+ * initialize_once:
1479+ * TRUE: Tera Termの起動時
1480+ * FALSE: Tera Termの起動時以外
1481+ */
1482+void BGInitialize(BOOL initialize_once)
14671483 {
14681484 char path[MAX_PATH],config_file[MAX_PATH],tempPath[MAX_PATH];
14691485
1486+ ZeroMemory(path, sizeof(path));
1487+ ZeroMemory(config_file, sizeof(config_file));
1488+ ZeroMemory(tempPath, sizeof(tempPath));
1489+
14701490 // VTColor を読み込み
14711491 BGVTColor[0] = ts.VTColor[0];
14721492 BGVTColor[1] = ts.VTColor[1];
@@ -1530,9 +1550,17 @@
15301550 ts.BGImgBrightness = GetPrivateProfileInt(BG_SECTION, BG_THEME_IMAGE_BRIGHTNESS1, BG_THEME_IMAGE_BRIGHTNESS_DEFAULT, path);
15311551 }
15321552
1553+ // BGEnableが真でも、initialize_once == FALSEの場合は初期化をしない。
1554+ // Tera Termの起動時のみに初期化する。
1555+ if (initialize_once) {
1556+ // Tera Term起動時に一度だけ読む。
1557+ ts.EtermLookfeel.BGIgnoreThemeFile = BGGetOnOff("BGIgnoreThemeFile", FALSE ,ts.SetupFName);
1558+ }
1559+
15331560 if(!BGEnable)
15341561 return;
15351562
1563+
15361564 //乱数初期化
15371565 // add cast (2006.2.18 yutaka)
15381566 srand((unsigned int)time(NULL));
@@ -1584,6 +1612,14 @@
15841612 GetPrivateProfileString(BG_SECTION,"BGThemeFile","",path,MAX_PATH,ts.SetupFName);
15851613 RandomFile(path,config_file,sizeof(config_file));
15861614
1615+ // ImageFile.INIではない場合はランダムに選ぶ。
1616+ if (strstr(path, BG_THEME_IMAGEFILE_NAME) == NULL) {
1617+ // テーマファイルを無視する場合は空にする。
1618+ if (ts.EtermLookfeel.BGIgnoreThemeFile) {
1619+ ZeroMemory(config_file, sizeof(config_file));
1620+ }
1621+ }
1622+
15871623 //設定のオーバーライド
15881624 if(strcmp(config_file,""))
15891625 {
@@ -1812,7 +1848,7 @@
18121848 CRTWidth = GetSystemMetrics(SM_CXSCREEN);
18131849 CRTHeight = GetSystemMetrics(SM_CYSCREEN);
18141850
1815- BGInitialize();
1851+ BGInitialize(TRUE);
18161852 #else
18171853 InitColorTable();
18181854 #endif // ALPHABLEND_TYPE2
--- trunk/teraterm/teraterm/vtdisp.h (revision 8105)
+++ trunk/teraterm/teraterm/vtdisp.h (revision 8106)
@@ -34,7 +34,7 @@
3434
3535 /* prototypes */
3636 //<!--by AKASI
37-void BGInitialize(void);
37+void BGInitialize(BOOL initialize_once);
3838 void BGSetupPrimary(BOOL);
3939
4040 void BGExchangeColor(void);
--- trunk/teraterm/teraterm/vtwin.cpp (revision 8105)
+++ trunk/teraterm/teraterm/vtwin.cpp (revision 8106)
@@ -1520,7 +1520,7 @@
15201520
15211521 /* background and ANSI color */
15221522 #ifdef ALPHABLEND_TYPE2
1523- BGInitialize();
1523+ BGInitialize(FALSE);
15241524 BGSetupPrimary(TRUE);
15251525 // 2006/03/17 by 337 : Alpha値も即時変更
15261526 // Layered窓になっていない場合は効果が無い
@@ -4496,7 +4496,7 @@
44964496 break;
44974497 case IDOK:
44984498 #ifdef ALPHABLEND_TYPE2
4499- BGInitialize();
4499+ BGInitialize(FALSE);
45004500 BGSetupPrimary(TRUE);
45014501 #else
45024502 DispApplyANSIColor();
@@ -4570,7 +4570,7 @@
45704570 // Eterm lookfeelの画面情報も更新することで、リアルタイムでの背景色変更が
45714571 // 可能となる。(2006.2.24 yutaka)
45724572 #ifdef ALPHABLEND_TYPE2
4573- BGInitialize();
4573+ BGInitialize(FALSE);
45744574 BGSetupPrimary(TRUE);
45754575 #endif
45764576
--- trunk/teraterm/ttpset/ttset.c (revision 8105)
+++ trunk/teraterm/ttpset/ttset.c (revision 8106)
@@ -3055,6 +3055,8 @@
30553055 WritePrivateProfileString(BG_SECTION, BG_DESTFILE, ts->BGImageFilePath, Temp);
30563056 WriteInt(BG_SECTION, BG_THEME_IMAGE_BRIGHTNESS1, Temp, ts->BGImgBrightness);
30573057 WriteInt(BG_SECTION, BG_THEME_IMAGE_BRIGHTNESS2, Temp, ts->BGImgBrightness);
3058+ WriteOnOff(ETERM_SECTION, "BGIgnoreThemeFile", FName,
3059+ ts->EtermLookfeel.BGIgnoreThemeFile);
30583060
30593061 #ifdef USE_NORMAL_BGCOLOR
30603062 // UseNormalBGColor
Show on old repository browser