Revision | 4942 (tree) |
---|---|
Time | 2012-05-13 21:59:07 |
Author | (del#24082) |
Eterm look-feel 機能の背景画像指定を Additional settings ダイアログから行えるようにした。
ダイアログ上から画像ファイルを指定すると、
に更新する。
ダイアログ上から Eterm look-feel を off にすると、
に戻す。
@@ -112,8 +112,6 @@ | ||
112 | 112 | #include <stdio.h> |
113 | 113 | #include <time.h> |
114 | 114 | |
115 | -#define BG_SECTION "BG" | |
116 | - | |
117 | 115 | typedef enum _BG_TYPE {BG_COLOR = 0,BG_PICTURE,BG_WALLPAPER} BG_TYPE; |
118 | 116 | typedef enum _BG_PATTERN {BG_STRETCH = 0,BG_TILE,BG_CENTER,BG_FIT_WIDTH,BG_FIT_HEIGHT,BG_AUTOFIT,BG_AUTOFILL} BG_PATTERN; |
119 | 117 |
@@ -1388,7 +1386,7 @@ | ||
1388 | 1386 | BGDest.antiAlias = BGGetOnOff("BGDestAntiAlias",BGDest.antiAlias,file); |
1389 | 1387 | BGDest.color = BGGetColor("BGDestColor",BGDest.color,file); |
1390 | 1388 | |
1391 | - GetPrivateProfileString(BG_SECTION,"BGDestFile",BGDest.file,path,MAX_PATH,file); | |
1389 | + GetPrivateProfileString(BG_SECTION, BG_DESTFILE, BGDest.file,path,MAX_PATH,file); | |
1392 | 1390 | RandomFile(path,BGDest.file,sizeof(BGDest.file)); |
1393 | 1391 | |
1394 | 1392 | //その他読み出し |
@@ -1462,9 +1460,17 @@ | ||
1462 | 1460 | strncpy_s(ts.EtermLookfeel.BGSPIPath, sizeof(ts.EtermLookfeel.BGSPIPath), BGSPIPath, _TRUNCATE); |
1463 | 1461 | |
1464 | 1462 | //コンフィグファイルの決定 |
1465 | - GetPrivateProfileString(BG_SECTION,"BGThemeFile","",path,MAX_PATH,ts.SetupFName); | |
1466 | - strncpy_s(ts.EtermLookfeel.BGThemeFile, sizeof(ts.EtermLookfeel.BGThemeFile), path, _TRUNCATE); | |
1463 | + if (ts.EtermLookfeel.BGThemeFile[0] == '\0') { | |
1464 | + // 空の場合のみ、ディスクから読む。BGInitialize()が Tera Term 起動時以外にも、 | |
1465 | + // Additional settings から呼び出されることがあるため。 | |
1466 | + GetPrivateProfileString(BG_SECTION,"BGThemeFile","",path,MAX_PATH,ts.SetupFName); | |
1467 | + strncpy_s(ts.EtermLookfeel.BGThemeFile, sizeof(ts.EtermLookfeel.BGThemeFile), path, _TRUNCATE); | |
1468 | + } | |
1467 | 1469 | |
1470 | + // 背景画像の読み込み | |
1471 | + _snprintf_s(path, sizeof(path), _TRUNCATE, "%s\\%s", ts.HomeDir, BG_THEME_IMAGEFILE); | |
1472 | + GetPrivateProfileString(BG_SECTION, BG_DESTFILE, "", ts.BGImageFilePath, sizeof(ts.BGImageFilePath), path); | |
1473 | + | |
1468 | 1474 | if(!BGEnable) |
1469 | 1475 | return; |
1470 | 1476 |
@@ -770,6 +770,9 @@ | ||
770 | 770 | SendDlgItemMessage(IDC_ENABLE_URL_COLOR, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0)); |
771 | 771 | SendDlgItemMessage(IDC_ENABLE_ANSI_COLOR, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0)); |
772 | 772 | SendDlgItemMessage(IDC_URL_UNDERLINE, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0)); |
773 | + SendDlgItemMessage(IDC_BGIMG_LABEL, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0)); | |
774 | + SendDlgItemMessage(IDC_BGIMG_EDIT, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0)); | |
775 | + SendDlgItemMessage(IDC_BGIMG_BUTTON, WM_SETFONT, (WPARAM)DlgVisualFont, MAKELPARAM(TRUE,0)); | |
773 | 776 | } |
774 | 777 | else { |
775 | 778 | DlgVisualFont = NULL; |
@@ -832,6 +835,18 @@ | ||
832 | 835 | btn = (CButton *)GetDlgItem(IDC_ETERM_LOOKFEEL); |
833 | 836 | btn->SetCheck(ts.EtermLookfeel.BGEnable); |
834 | 837 | |
838 | + // Eterm look-feelの背景画像指定。 | |
839 | + SetDlgItemText(IDC_BGIMG_EDIT, ts.BGImageFilePath); | |
840 | + if (ts.EtermLookfeel.BGEnable) { | |
841 | + GetDlgItem(IDC_BGIMG_LABEL)->EnableWindow(TRUE); | |
842 | + GetDlgItem(IDC_BGIMG_EDIT)->EnableWindow(TRUE); | |
843 | + GetDlgItem(IDC_BGIMG_BUTTON)->EnableWindow(TRUE); | |
844 | + } else { | |
845 | + GetDlgItem(IDC_BGIMG_LABEL)->EnableWindow(FALSE); | |
846 | + GetDlgItem(IDC_BGIMG_EDIT)->EnableWindow(FALSE); | |
847 | + GetDlgItem(IDC_BGIMG_BUTTON)->EnableWindow(FALSE); | |
848 | + } | |
849 | + | |
835 | 850 | // (3)Mouse cursor type |
836 | 851 | listbox = (CListBox *)GetDlgItem(IDC_MOUSE_CURSOR); |
837 | 852 | for (i = 0 ; MouseCursor[i].name ; i++) { |
@@ -904,8 +919,38 @@ | ||
904 | 919 | CListBox *listbox; |
905 | 920 | int sel; |
906 | 921 | char buf[MAXPATHLEN]; |
922 | + CButton *btn; | |
907 | 923 | |
908 | 924 | switch (wParam) { |
925 | + case IDC_ETERM_LOOKFEEL: | |
926 | + // チェックされたら Enable/Disable をトグルする。 | |
927 | + btn = (CButton *)GetDlgItem(IDC_ETERM_LOOKFEEL); | |
928 | + if (btn->GetCheck()) { | |
929 | + GetDlgItem(IDC_BGIMG_LABEL)->EnableWindow(TRUE); | |
930 | + GetDlgItem(IDC_BGIMG_EDIT)->EnableWindow(TRUE); | |
931 | + GetDlgItem(IDC_BGIMG_BUTTON)->EnableWindow(TRUE); | |
932 | + } else { | |
933 | + GetDlgItem(IDC_BGIMG_LABEL)->EnableWindow(FALSE); | |
934 | + GetDlgItem(IDC_BGIMG_EDIT)->EnableWindow(FALSE); | |
935 | + GetDlgItem(IDC_BGIMG_BUTTON)->EnableWindow(FALSE); | |
936 | + // 無効化されたら、BGThemeFile を元に戻す。 | |
937 | + strncpy_s(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE_DEFAULT, sizeof(ts.EtermLookfeel.BGThemeFile)); | |
938 | + } | |
939 | + return TRUE; | |
940 | + | |
941 | + case IDC_BGIMG_BUTTON | (BN_CLICKED << 16): | |
942 | + // 背景画像をダイアログで指定する。 | |
943 | + { | |
944 | + CString filter("Image Files(*.jpg;*.jpeg;*.bmp)|*.jpg;*.jpeg;*.bmp|All Files(*.*)|*.*||"); | |
945 | + CFileDialog selDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY, filter); | |
946 | + if (selDlg.DoModal() == IDOK) { | |
947 | + // 背景画像指定が意図的に行われたら、BGThemeFile を固定化する。 | |
948 | + SetDlgItemText(IDC_BGIMG_EDIT, selDlg.GetPathName()); | |
949 | + strncpy_s(ts.EtermLookfeel.BGThemeFile, BG_THEME_IMAGEFILE, sizeof(ts.EtermLookfeel.BGThemeFile)); | |
950 | + } | |
951 | + } | |
952 | + return TRUE; | |
953 | + | |
909 | 954 | case IDC_ANSI_COLOR | (LBN_SELCHANGE << 16): |
910 | 955 | listbox = (CListBox *)GetDlgItem(IDC_ANSI_COLOR); |
911 | 956 | sel = listbox->GetCurSel(); |
@@ -1024,6 +1069,10 @@ | ||
1024 | 1069 | ts.EtermLookfeel.BGEnable = btn->GetCheck(); |
1025 | 1070 | } |
1026 | 1071 | |
1072 | + if (ts.EtermLookfeel.BGEnable) { | |
1073 | + GetDlgItemText(IDC_BGIMG_EDIT, ts.BGImageFilePath, sizeof(ts.BGImageFilePath)); | |
1074 | + } | |
1075 | + | |
1027 | 1076 | // (3) |
1028 | 1077 | listbox = (CListBox *)GetDlgItem(IDC_MOUSE_CURSOR); |
1029 | 1078 | sel = listbox->GetCurSel(); |
@@ -2378,7 +2378,7 @@ | ||
2378 | 2378 | WritePrivateProfileString(NULL, NULL, NULL, FName); |
2379 | 2379 | |
2380 | 2380 | // Eterm lookfeel alphablend (2005.4.24 yutaka) |
2381 | -#define ETERM_SECTION "BG" | |
2381 | +#define ETERM_SECTION BG_SECTION | |
2382 | 2382 | WriteOnOff(ETERM_SECTION, "BGEnable", FName, |
2383 | 2383 | ts->EtermLookfeel.BGEnable); |
2384 | 2384 | WriteOnOff(ETERM_SECTION, "BGUseAlphaBlendAPI", FName, |
@@ -2393,6 +2393,8 @@ | ||
2393 | 2393 | ts->EtermLookfeel.BGNoFrame); |
2394 | 2394 | WritePrivateProfileString(ETERM_SECTION, "BGThemeFile", |
2395 | 2395 | ts->EtermLookfeel.BGThemeFile, FName); |
2396 | + _snprintf_s(Temp, sizeof(Temp), _TRUNCATE, "%s\\%s", ts->HomeDir, BG_THEME_IMAGEFILE); | |
2397 | + WritePrivateProfileString(BG_SECTION, BG_DESTFILE, ts->BGImageFilePath, Temp); | |
2396 | 2398 | |
2397 | 2399 | #ifdef USE_NORMAL_BGCOLOR |
2398 | 2400 | // UseNormalBGColor |
@@ -130,6 +130,7 @@ | ||
130 | 130 | #define IDC_SCROLL_LINE 2510 |
131 | 131 | #define IDC_PASTEDELAY_EDIT 2510 |
132 | 132 | #define IDC_SCP_PATH 2510 |
133 | +#define IDC_BGIMG_EDIT 2510 | |
133 | 134 | #define IDC_CHECK1 2512 |
134 | 135 | #define IDC_CONFIRM_CHANGE_PASTE 2512 |
135 | 136 | #define IDC_CURSOR_CTRL_SEQ 2512 |
@@ -153,7 +154,10 @@ | ||
153 | 154 | #define IDC_PROTOELAPSEDTIME 2526 |
154 | 155 | #define IDC_DAD_SENDFILE 2526 |
155 | 156 | #define IDC_TRANS_ELAPSED 2527 |
157 | +#define IDC_BGIMG_LABEL 2527 | |
156 | 158 | #define IDC_TRANS_ETIME 2528 |
159 | +#define IDC_BUTTON1 2528 | |
160 | +#define IDC_BGIMG_BUTTON 2528 | |
157 | 161 | #define IDC_CLIPBOARD_ACCESS_LABEL 2529 |
158 | 162 | #define IDC_CLIPBOARD_ACCESS 2530 |
159 | 163 | #define ID_ACC_SENDBREAK 50001 |
@@ -249,7 +253,7 @@ | ||
249 | 253 | #define _APS_NO_MFC 1 |
250 | 254 | #define _APS_NEXT_RESOURCE_VALUE 123 |
251 | 255 | #define _APS_NEXT_COMMAND_VALUE 52031 |
252 | -#define _APS_NEXT_CONTROL_VALUE 2527 | |
256 | +#define _APS_NEXT_CONTROL_VALUE 2529 | |
253 | 257 | #define _APS_NEXT_SYMED_VALUE 101 |
254 | 258 | #endif |
255 | 259 | #endif |
@@ -556,6 +556,7 @@ | ||
556 | 556 | WORD KermitOpt; |
557 | 557 | WORD FontQuality; |
558 | 558 | char ScpSendDir[MAXPATHLEN]; |
559 | + char BGImageFilePath[MAX_PATH]; | |
559 | 560 | }; |
560 | 561 | |
561 | 562 | typedef struct tttset TTTSet, *PTTSet; |
@@ -1014,6 +1015,7 @@ | ||
1014 | 1015 | * - At version 4.74, ttset_memfilemap was replaced with ttset_memfilemap_19. |
1015 | 1016 | * added tttset.FontQuality |
1016 | 1017 | * added tttset.ScpSenDir |
1018 | + * added tttset.BGImageFilePath | |
1017 | 1019 | * |
1018 | 1020 | * - At version 4.73, ttset_memfilemap was replaced with ttset_memfilemap_18. |
1019 | 1021 | * added tttset.LogLockExclusive |
@@ -13,6 +13,12 @@ | ||
13 | 13 | // AKASI氏によるEterm風透過ウィンドウ |
14 | 14 | #define ALPHABLEND_TYPE2 |
15 | 15 | |
16 | +// Eterm look-feel | |
17 | +#define BG_SECTION "BG" | |
18 | +#define BG_DESTFILE "BGDestFile" | |
19 | +#define BG_THEME_IMAGEFILE "theme\\ImageFile.INI" | |
20 | +#define BG_THEME_IMAGEFILE_DEFAULT "theme\\*.INI" | |
21 | + | |
16 | 22 | // Added by 337 2006/03/01 |
17 | 23 | #define USE_NORMAL_BGCOLOR |
18 | 24 |
@@ -229,11 +229,16 @@ | ||
229 | 229 | <dd> |
230 | 230 | Tera Term window looks like Eterm-lookfeel background transparency. |
231 | 231 | </dd> |
232 | - </dl> | |
233 | - | |
232 | + | |
234 | 233 | <p> |
235 | 234 | See also <a href="../usage/transparent.html">Background transparency</a>. |
236 | 235 | </p> |
236 | + | |
237 | + <dt>Background Image</dt> | |
238 | + <dd> | |
239 | + When the Eterm lookfeel feature is enabled, an image file can be specified as background. | |
240 | + </dd> | |
241 | + </dl> | |
237 | 242 | |
238 | 243 | <dl> |
239 | 244 | <dt>MouseCursor</dt> |
@@ -59,7 +59,7 @@ | ||
59 | 59 | <li>Eterm look-feel |
60 | 60 | <ul> |
61 | 61 | <li>Environment variable strings(%variableName%) can be included in the ini file path.</li> |
62 | - <li>added an image file specified configuration(theme\ImageFile.INI).</li> | |
62 | + <li>added an image file specified configuration(theme\ImageFile.INI). Also, a background image file can be specified on the <a href="../menu/setup-additional.html">Additional settings dialog</a>.</li> | |
63 | 63 | <li>Enabled the "Eterm lookfeel" checkbox on the <a href="../menu/setup-additional.html">Additional settings dialog</a>. Also, a user will be confirmed whether Tera Term is be relaunched.</li> |
64 | 64 | </ul></li> |
65 | 65 | <li>Macro |
@@ -226,7 +226,6 @@ | ||
226 | 226 | <dd> |
227 | 227 | Eterm風の半透明ウィンドウを使用することができます。 |
228 | 228 | </dd> |
229 | - </dl> | |
230 | 229 | |
231 | 230 | <p> |
232 | 231 | 詳しくは「<a href="../usage/transparent.html">透過ウインドウ</a>」 |
@@ -233,6 +232,12 @@ | ||
233 | 232 | を参照してください。 |
234 | 233 | </p> |
235 | 234 | |
235 | + <dt>Background Image</dt> | |
236 | + <dd> | |
237 | + Eterm lookfeel機能が有効の場合、背景画像を指定することができます。 | |
238 | + </dd> | |
239 | + </dl> | |
240 | + | |
236 | 241 | <dl> |
237 | 242 | <dt>MouseCursor</dt> |
238 | 243 | <dd> |
@@ -59,7 +59,7 @@ | ||
59 | 59 | <li>Eterm look-feel |
60 | 60 | <ul> |
61 | 61 | <li>iniファイルパスに環境変数文字列(%variableName%)を含められるようにした。</li> |
62 | - <li>画像ファイル指定設定(theme\ImageFile.INI)を追加した。</li> | |
62 | + <li>画像ファイル指定設定(theme\ImageFile.INI)を追加した。<a href="../menu/setup-additional.html">Additional settingsダイアログ</a>のVisualタブで、背景画像を指定できるようにした。</li> | |
63 | 63 | <li><a href="../menu/setup-additional.html">Additional settingsダイアログ</a>のVisualタブで、有効化できるようにした。設定変更後、再起動するかを問い合わせるようにした。</li> |
64 | 64 | </ul></li> |
65 | 65 | <li>マクロ |