Revisión | 8106 (tree) |
---|---|
Tiempo | 2019-09-10 23:42:39 |
Autor | (del#24082) |
Eterm look-feel:
- 「壁紙と画像を混合する」を設定できるようにした。
- 壁紙と混合する画像ファイルをランダムに選択する際、無関係なファイルを選択することがある問題を修正した。
@@ -44,11 +44,13 @@ | ||
44 | 44 | <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> |
45 | 45 | <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> |
46 | 46 | <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> | |
47 | 48 | </ul> |
48 | 49 | </li> |
49 | 50 | <li>Bug fixes |
50 | 51 | <ul> |
51 | 52 | <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> | |
52 | 54 | </ul> |
53 | 55 | </li> |
54 | 56 |
@@ -277,6 +277,12 @@ | ||
277 | 277 | <strong>NOTICE: You need to save setup and restart Tera Term for enabling this settings.</strong> |
278 | 278 | </dd> |
279 | 279 | |
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 | + | |
280 | 286 | <dt>Background Image</dt> |
281 | 287 | <dd> |
282 | 288 | When the Eterm look-feel feature is enabled, an image file can be specified as background. |
@@ -56,6 +56,18 @@ | ||
56 | 56 | <td style="width:250px;"><-</td> |
57 | 57 | <td></td> |
58 | 58 | </tr> |
59 | + <tr> | |
60 | + <td id="BGThemeFile">BGThemeFile</td> | |
61 | + <td style="width:250px;">theme\*.ini</td> | |
62 | + <td style="width:250px;"><-</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;"><-</td> | |
69 | + <td></td> | |
70 | + </tr> | |
59 | 71 | </table> |
60 | 72 | |
61 | 73 | <h2>Tera Term</h2> |
@@ -44,11 +44,13 @@ | ||
44 | 44 | <li><a href="../menu/file-new.html">New connectionダイアログ</a>の表記を「Protocol」から「IP version」に、「UNSPEC」を「AUTO」に変更した。</li> |
45 | 45 | <li>VT ウィンドウのタイトルバー上でマウスホイールを操作してウィンドウの不透明度を一時的に変更するとき、不透明度をツールチップに表示するようにした。</li> |
46 | 46 | <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> | |
47 | 48 | </ul> |
48 | 49 | </li> |
49 | 50 | <li>バグ修正 |
50 | 51 | <ul> |
51 | 52 | <li>リサイズ中の縦横サイズツールチップが、デスクトップの左端と上端で表示されなくなっていた問題を修正した。4.103でのエンバグ。</li> |
53 | + <li>Eterm look-feel: 壁紙と混合する画像ファイルをランダムに選択する際、無関係なファイルを選択することがある問題を修正した。</li> | |
52 | 54 | </ul> |
53 | 55 | </li> |
54 | 56 |
@@ -273,6 +273,12 @@ | ||
273 | 273 | Eterm風の半透明ウィンドウを使用することができます。<br> |
274 | 274 | <strong>注意:設定を有効にするには、設定の保存とTera Termの再起動が必要です。</strong> |
275 | 275 | </dd> |
276 | + | |
277 | + <dt id="MixedThemeFile">Mixed ThemeFile to Background</dt> | |
278 | + <dd> | |
279 | + Eterm lookfeel機能が有効の場合、壁紙とテーマファイルの画像を混合するかどうか指定できます。<br> | |
280 | + なお、Background Imageとは同時に使用できません。 | |
281 | + </dd> | |
276 | 282 | |
277 | 283 | <dt>Background Image</dt> |
278 | 284 | <dd> |
@@ -56,6 +56,18 @@ | ||
56 | 56 | <td style="width:250px;"><-</td> |
57 | 57 | <td></td> |
58 | 58 | </tr> |
59 | + <tr> | |
60 | + <td id="BGThemeFile">BGThemeFile</td> | |
61 | + <td style="width:250px;">theme\*.ini</td> | |
62 | + <td style="width:250px;"><-</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;"><-</td> | |
69 | + <td></td> | |
70 | + </tr> | |
59 | 71 | </table> |
60 | 72 | |
61 | 73 | <h2>Tera Term</h2> |
@@ -65,6 +65,9 @@ | ||
65 | 65 | #define BG_THEME_IMAGE_BRIGHTNESS_DEFAULT 64 |
66 | 66 | #define BG_THEME_IMAGE_BRIGHTNESS1 "BGSrc1Alpha" |
67 | 67 | #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" | |
68 | 71 | |
69 | 72 | // Added by 337 2006/03/01 |
70 | 73 | #define USE_NORMAL_BGCOLOR |
@@ -403,6 +403,7 @@ | ||
403 | 403 | int BGNoCopyBits; |
404 | 404 | int BGNoFrame; |
405 | 405 | char BGThemeFile[MAX_PATH]; |
406 | + int BGIgnoreThemeFile; | |
406 | 407 | } eterm_lookfeel_t; |
407 | 408 | |
408 | 409 | typedef struct cygterm { |
@@ -657,6 +657,7 @@ | ||
657 | 657 | { IDC_ALPHA_BLEND_ACTIVE_LABEL, "DLG_TAB_VISUAL_ALPHA_ACTIVE" }, |
658 | 658 | { IDC_ALPHA_BLEND_INACTIVE_LABEL, "DLG_TAB_VISUAL_ALPHA_INACTIVE" }, |
659 | 659 | { IDC_ETERM_LOOKFEEL, "DLG_TAB_VISUAL_ETERM" }, |
660 | + { IDC_MIXED_THEME_FILE, "DLG_TAB_VISUAL_BGMIXED_THEMEFILE" }, | |
660 | 661 | { IDC_BGIMG_CHECK, "DLG_TAB_VISUAL_BGIMG" }, |
661 | 662 | { IDC_BGIMG_BRIGHTNESS, "DLG_TAB_VISUAL_BGIMG_BRIGHTNESS" }, |
662 | 663 | { IDC_MOUSE, "DLG_TAB_VISUAL_MOUSE" }, |
@@ -704,11 +705,24 @@ | ||
704 | 705 | _snprintf_s(buf, sizeof(buf), _TRUNCATE, "%d", ts.BGImgBrightness); |
705 | 706 | SetDlgItemNum(IDC_EDIT_BGIMG_BRIGHTNESS, ts.BGImgBrightness); |
706 | 707 | |
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 | + | |
707 | 721 | if (ts.EtermLookfeel.BGEnable) { |
708 | 722 | EnableDlgItem(IDC_BGIMG_CHECK, TRUE); |
723 | + EnableDlgItem(IDC_MIXED_THEME_FILE, TRUE); | |
709 | 724 | |
710 | 725 | if (strcmp(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE) == 0) { |
711 | - SetCheck(IDC_BGIMG_CHECK, BST_CHECKED); | |
712 | 726 | EnableDlgItem(IDC_BGIMG_EDIT, TRUE); |
713 | 727 | EnableDlgItem(IDC_BGIMG_BUTTON, TRUE); |
714 | 728 |
@@ -715,7 +729,6 @@ | ||
715 | 729 | EnableDlgItem(IDC_BGIMG_BRIGHTNESS, TRUE); |
716 | 730 | EnableDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS, TRUE); |
717 | 731 | } else { |
718 | - SetCheck(IDC_BGIMG_CHECK, BST_UNCHECKED); | |
719 | 732 | EnableDlgItem(IDC_BGIMG_EDIT, FALSE); |
720 | 733 | EnableDlgItem(IDC_BGIMG_BUTTON, FALSE); |
721 | 734 |
@@ -722,6 +735,7 @@ | ||
722 | 735 | EnableDlgItem(IDC_BGIMG_BRIGHTNESS, FALSE); |
723 | 736 | EnableDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS, FALSE); |
724 | 737 | } |
738 | + | |
725 | 739 | } else { |
726 | 740 | EnableDlgItem(IDC_BGIMG_CHECK, FALSE); |
727 | 741 | EnableDlgItem(IDC_BGIMG_EDIT, FALSE); |
@@ -729,6 +743,8 @@ | ||
729 | 743 | |
730 | 744 | EnableDlgItem(IDC_BGIMG_BRIGHTNESS, FALSE); |
731 | 745 | EnableDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS, FALSE); |
746 | + | |
747 | + EnableDlgItem(IDC_MIXED_THEME_FILE, FALSE); | |
732 | 748 | } |
733 | 749 | |
734 | 750 | // (3)Mouse cursor type |
@@ -797,6 +813,7 @@ | ||
797 | 813 | case IDC_ETERM_LOOKFEEL: |
798 | 814 | // チェックされたら Enable/Disable をトグルする。 |
799 | 815 | if (GetCheck(IDC_ETERM_LOOKFEEL)) { |
816 | + EnableDlgItem(IDC_MIXED_THEME_FILE, TRUE); | |
800 | 817 | EnableDlgItem(IDC_BGIMG_CHECK, TRUE); |
801 | 818 | if (GetCheck(IDC_BGIMG_CHECK)) { |
802 | 819 | EnableDlgItem(IDC_BGIMG_EDIT, TRUE); |
@@ -824,9 +841,18 @@ | ||
824 | 841 | // 背景画像も無効化する。 |
825 | 842 | SetDlgItemTextT(IDC_BGIMG_EDIT, _T("")); |
826 | 843 | SetDlgItemInt(IDC_EDIT_BGIMG_BRIGHTNESS, BG_THEME_IMAGE_BRIGHTNESS_DEFAULT); |
844 | + | |
845 | + EnableDlgItem(IDC_MIXED_THEME_FILE, FALSE); | |
827 | 846 | } |
828 | 847 | return TRUE; |
829 | 848 | |
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 | + | |
830 | 856 | case IDC_BGIMG_CHECK: |
831 | 857 | if (GetCheck(IDC_BGIMG_CHECK)) { |
832 | 858 | EnableDlgItem(IDC_BGIMG_EDIT, TRUE); |
@@ -836,6 +862,8 @@ | ||
836 | 862 | EnableDlgItem(IDC_EDIT_BGIMG_BRIGHTNESS, TRUE); |
837 | 863 | |
838 | 864 | strncpy_s(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE, sizeof(ts.EtermLookfeel.BGThemeFile)); |
865 | + // 混合のチェックは外す。 | |
866 | + SetCheck(IDC_MIXED_THEME_FILE, BST_UNCHECKED); | |
839 | 867 | } else { |
840 | 868 | EnableDlgItem(IDC_BGIMG_EDIT, FALSE); |
841 | 869 | EnableDlgItem(IDC_BGIMG_BUTTON, FALSE); |
@@ -982,6 +1010,27 @@ | ||
982 | 1010 | (i > 255) ? 255 : i; |
983 | 1011 | } |
984 | 1012 | |
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 | + | |
985 | 1034 | // (3) |
986 | 1035 | sel = GetCurSel(IDC_MOUSE_CURSOR); |
987 | 1036 | if (sel >= 0 && sel < MOUSE_CURSOR_MAX) { |
@@ -411,6 +411,15 @@ | ||
411 | 411 | strncpy_s(tmp,tmplen,fullpath,filePart - fullpath); |
412 | 412 | strncpy_s(filename,destlen,tmp,_TRUNCATE); |
413 | 413 | } |
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 | + | |
414 | 423 | strncat_s(filename,destlen,fd.cFileName,_TRUNCATE); |
415 | 424 | } |
416 | 425 |
@@ -1463,10 +1472,21 @@ | ||
1463 | 1472 | DeleteFile(BGSrc2.fileTmp); |
1464 | 1473 | } |
1465 | 1474 | |
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) | |
1467 | 1483 | { |
1468 | 1484 | char path[MAX_PATH],config_file[MAX_PATH],tempPath[MAX_PATH]; |
1469 | 1485 | |
1486 | + ZeroMemory(path, sizeof(path)); | |
1487 | + ZeroMemory(config_file, sizeof(config_file)); | |
1488 | + ZeroMemory(tempPath, sizeof(tempPath)); | |
1489 | + | |
1470 | 1490 | // VTColor を読み込み |
1471 | 1491 | BGVTColor[0] = ts.VTColor[0]; |
1472 | 1492 | BGVTColor[1] = ts.VTColor[1]; |
@@ -1530,9 +1550,17 @@ | ||
1530 | 1550 | ts.BGImgBrightness = GetPrivateProfileInt(BG_SECTION, BG_THEME_IMAGE_BRIGHTNESS1, BG_THEME_IMAGE_BRIGHTNESS_DEFAULT, path); |
1531 | 1551 | } |
1532 | 1552 | |
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 | + | |
1533 | 1560 | if(!BGEnable) |
1534 | 1561 | return; |
1535 | 1562 | |
1563 | + | |
1536 | 1564 | //乱数初期化 |
1537 | 1565 | // add cast (2006.2.18 yutaka) |
1538 | 1566 | srand((unsigned int)time(NULL)); |
@@ -1584,6 +1612,14 @@ | ||
1584 | 1612 | GetPrivateProfileString(BG_SECTION,"BGThemeFile","",path,MAX_PATH,ts.SetupFName); |
1585 | 1613 | RandomFile(path,config_file,sizeof(config_file)); |
1586 | 1614 | |
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 | + | |
1587 | 1623 | //設定のオーバーライド |
1588 | 1624 | if(strcmp(config_file,"")) |
1589 | 1625 | { |
@@ -1812,7 +1848,7 @@ | ||
1812 | 1848 | CRTWidth = GetSystemMetrics(SM_CXSCREEN); |
1813 | 1849 | CRTHeight = GetSystemMetrics(SM_CYSCREEN); |
1814 | 1850 | |
1815 | - BGInitialize(); | |
1851 | + BGInitialize(TRUE); | |
1816 | 1852 | #else |
1817 | 1853 | InitColorTable(); |
1818 | 1854 | #endif // ALPHABLEND_TYPE2 |
@@ -34,7 +34,7 @@ | ||
34 | 34 | |
35 | 35 | /* prototypes */ |
36 | 36 | //<!--by AKASI |
37 | -void BGInitialize(void); | |
37 | +void BGInitialize(BOOL initialize_once); | |
38 | 38 | void BGSetupPrimary(BOOL); |
39 | 39 | |
40 | 40 | void BGExchangeColor(void); |
@@ -1520,7 +1520,7 @@ | ||
1520 | 1520 | |
1521 | 1521 | /* background and ANSI color */ |
1522 | 1522 | #ifdef ALPHABLEND_TYPE2 |
1523 | - BGInitialize(); | |
1523 | + BGInitialize(FALSE); | |
1524 | 1524 | BGSetupPrimary(TRUE); |
1525 | 1525 | // 2006/03/17 by 337 : Alpha値も即時変更 |
1526 | 1526 | // Layered窓になっていない場合は効果が無い |
@@ -4496,7 +4496,7 @@ | ||
4496 | 4496 | break; |
4497 | 4497 | case IDOK: |
4498 | 4498 | #ifdef ALPHABLEND_TYPE2 |
4499 | - BGInitialize(); | |
4499 | + BGInitialize(FALSE); | |
4500 | 4500 | BGSetupPrimary(TRUE); |
4501 | 4501 | #else |
4502 | 4502 | DispApplyANSIColor(); |
@@ -4570,7 +4570,7 @@ | ||
4570 | 4570 | // Eterm lookfeelの画面情報も更新することで、リアルタイムでの背景色変更が |
4571 | 4571 | // 可能となる。(2006.2.24 yutaka) |
4572 | 4572 | #ifdef ALPHABLEND_TYPE2 |
4573 | - BGInitialize(); | |
4573 | + BGInitialize(FALSE); | |
4574 | 4574 | BGSetupPrimary(TRUE); |
4575 | 4575 | #endif |
4576 | 4576 |
@@ -3055,6 +3055,8 @@ | ||
3055 | 3055 | WritePrivateProfileString(BG_SECTION, BG_DESTFILE, ts->BGImageFilePath, Temp); |
3056 | 3056 | WriteInt(BG_SECTION, BG_THEME_IMAGE_BRIGHTNESS1, Temp, ts->BGImgBrightness); |
3057 | 3057 | WriteInt(BG_SECTION, BG_THEME_IMAGE_BRIGHTNESS2, Temp, ts->BGImgBrightness); |
3058 | + WriteOnOff(ETERM_SECTION, "BGIgnoreThemeFile", FName, | |
3059 | + ts->EtermLookfeel.BGIgnoreThemeFile); | |
3058 | 3060 | |
3059 | 3061 | #ifdef USE_NORMAL_BGCOLOR |
3060 | 3062 | // UseNormalBGColor |