tttypes にテーマ関連のパスのUnicode版を追加
- BGImageFilePathW
- EtermLookfeel.BGThemeFileW
- EtermLookfeel.BGSPIPathW
ticket #44048
@@ -59,12 +59,15 @@ | ||
59 | 59 | |
60 | 60 | // Eterm look-feel |
61 | 61 | #define BG_SECTION "BG" |
62 | +#define BG_SECTIONW L"BG" | |
62 | 63 | #define BG_DESTFILE "BGDestFile" |
64 | +#define BG_DESTFILEW L"BGDestFile" | |
63 | 65 | #define BG_THEME_DIR L"theme" |
64 | 66 | #define BG_THEME_IMAGEFILE "theme\\ImageFile.INI" |
65 | 67 | #define BG_THEME_IMAGEFILE_DEFAULT "theme\\*.INI" |
66 | 68 | #define BG_THEME_IMAGE_BRIGHTNESS_DEFAULT 64 |
67 | 69 | #define BG_THEME_IMAGE_BRIGHTNESS1 "BGSrc1Alpha" |
70 | +#define BG_THEME_IMAGE_BRIGHTNESS1W L"BGSrc1Alpha" | |
68 | 71 | #define BG_THEME_IMAGE_BRIGHTNESS2 "BGSrc2Alpha" |
69 | 72 | #define BG_THEME_IMAGEFILE_NAME "ImageFile.INI" |
70 | 73 | #define BG_THEME_THEMEFILE_SCALE "Scale.INI" |
@@ -330,6 +330,8 @@ | ||
330 | 330 | char BGThemeFile[MAX_PATH]; |
331 | 331 | int BGIgnoreThemeFile; |
332 | 332 | char reserve[20]; |
333 | + wchar_t *BGThemeFileW; | |
334 | + wchar_t *BGSPIPathW; | |
333 | 335 | } eterm_lookfeel_t; |
334 | 336 | |
335 | 337 | typedef struct cygterm { |
@@ -648,6 +650,7 @@ | ||
648 | 650 | wchar_t *ExeDirW; // ttermpro.exe のあるフォルダ |
649 | 651 | wchar_t *LogDirW; // logやダンプを置くフォルダ |
650 | 652 | wchar_t *FileDirW; // ダウンロードパス("%APPDATA%" 等が含まれる,使用前に環境変数を展開すること) |
653 | + wchar_t *BGImageFilePathW; | |
651 | 654 | wchar_t *LogDefaultPathW; // ログフォルダ([file]/[log]メニューのログ) |
652 | 655 | }; |
653 | 656 |
@@ -42,6 +42,7 @@ | ||
42 | 42 | #include "setting.h" |
43 | 43 | #include "codeconv.h" |
44 | 44 | #include "libsusieplugin.h" |
45 | +#include "asprintf.h" | |
45 | 46 | #include "inifile_com.h" |
46 | 47 | #include "win32helper.h" |
47 | 48 |
@@ -1370,12 +1371,10 @@ | ||
1370 | 1371 | */ |
1371 | 1372 | void BGInitialize(BOOL initialize_once) |
1372 | 1373 | { |
1373 | - char path[MAX_PATH], config_file[MAX_PATH], tempPath[MAX_PATH]; | |
1374 | - char BGSPIPath[MAX_PATH]; | |
1374 | + char path[MAX_PATH]; | |
1375 | + char config_file[MAX_PATH]; | |
1375 | 1376 | |
1376 | - ZeroMemory(path, sizeof(path)); | |
1377 | 1377 | ZeroMemory(config_file, sizeof(config_file)); |
1378 | - ZeroMemory(tempPath, sizeof(tempPath)); | |
1379 | 1378 | |
1380 | 1379 | // VTColor を読み込み |
1381 | 1380 | BGVTColor[0] = ts.VTColor[0]; |
@@ -1390,18 +1389,8 @@ | ||
1390 | 1389 | BGVTReverseColor[0] = ts.VTReverseColor[0]; |
1391 | 1390 | BGVTReverseColor[1] = ts.VTReverseColor[1]; |
1392 | 1391 | |
1393 | -#if 1 | |
1394 | - // ハイパーリンク描画の復活。(2009.8.26 yutaka) | |
1395 | - /* begin - ishizaki */ | |
1396 | 1392 | BGURLColor[0] = ts.URLColor[0]; |
1397 | 1393 | BGURLColor[1] = ts.URLColor[1]; |
1398 | - /* end - ishizaki */ | |
1399 | -#else | |
1400 | - // TODO: ハイパーリンクの描画がリアルタイムに行われないことがあるので、 | |
1401 | - // 色属性変更はいったん取りやめることにする。将来、対応する。(2005.4.3 yutaka) | |
1402 | - BGURLColor[0] = ts.VTColor[0]; | |
1403 | - BGURLColor[1] = ts.VTColor[1]; | |
1404 | -#endif | |
1405 | 1394 | |
1406 | 1395 | // ANSI color設定のほうを優先させる (2005.2.3 yutaka) |
1407 | 1396 | InitColorTable(); |
@@ -1419,22 +1408,29 @@ | ||
1419 | 1408 | BGEnable = BGGetOnOff("BGEnable", FALSE, ts.SetupFNameW); |
1420 | 1409 | } |
1421 | 1410 | |
1422 | - GetPrivateProfileString(BG_SECTION, "BGSPIPath", "plugin", BGSPIPath, MAX_PATH, ts.SetupFName); | |
1423 | - strncpy_s(ts.EtermLookfeel.BGSPIPath, sizeof(ts.EtermLookfeel.BGSPIPath), BGSPIPath, _TRUNCATE); | |
1411 | + hGetPrivateProfileStringW(BG_SECTIONW, L"BGSPIPath", L"plugin", ts.SetupFNameW, &ts.EtermLookfeel.BGSPIPathW); | |
1412 | + WideCharToACP_t(ts.EtermLookfeel.BGSPIPathW, ts.EtermLookfeel.BGSPIPath, sizeof(ts.EtermLookfeel.BGSPIPath)); | |
1424 | 1413 | |
1425 | 1414 | if (ts.EtermLookfeel.BGThemeFile[0] == '\0') { |
1426 | - //コンフィグファイルの決定 | |
1427 | - GetPrivateProfileString(BG_SECTION, "BGThemeFile", "", path, MAX_PATH, ts.SetupFName); | |
1428 | - strncpy_s(ts.EtermLookfeel.BGThemeFile, sizeof(ts.EtermLookfeel.BGThemeFile), path, _TRUNCATE); | |
1415 | + wchar_t *theme_imagefile; | |
1429 | 1416 | |
1417 | + //コンフィグファイル(テーマファイル)の決定 | |
1418 | + hGetPrivateProfileStringW(BG_SECTIONW, L"BGThemeFile", L"", ts.SetupFNameW, &ts.EtermLookfeel.BGThemeFileW); | |
1419 | + WideCharToACP_t(ts.EtermLookfeel.BGThemeFileW, ts.EtermLookfeel.BGThemeFile, sizeof(ts.EtermLookfeel.BGThemeFile)); | |
1420 | + | |
1421 | + // テーマファイルImageFile.INIから | |
1422 | + aswprintf(&theme_imagefile, L"%s\\%hs", ts.HomeDirW, BG_THEME_IMAGEFILE); | |
1423 | + | |
1430 | 1424 | // 背景画像の読み込み |
1431 | - _snprintf_s(path, sizeof(path), _TRUNCATE, "%s\\%s", ts.HomeDir, BG_THEME_IMAGEFILE); | |
1432 | - GetPrivateProfileString(BG_SECTION, BG_DESTFILE, "", ts.BGImageFilePath, sizeof(ts.BGImageFilePath), path); | |
1425 | + hGetPrivateProfileStringW(BG_SECTIONW, BG_DESTFILEW, L"", theme_imagefile, &ts.BGImageFilePathW); | |
1426 | + WideCharToACP_t(ts.BGImageFilePathW, ts.BGImageFilePath, _countof(ts.BGImageFilePath)); | |
1433 | 1427 | |
1434 | 1428 | // 背景画像の明るさの読み込み。 |
1435 | 1429 | // BGSrc1Alpha と BGSrc2Alphaは同値として扱う。 |
1436 | 1430 | ts.BGImgBrightness = |
1437 | - GetPrivateProfileInt(BG_SECTION, BG_THEME_IMAGE_BRIGHTNESS1, BG_THEME_IMAGE_BRIGHTNESS_DEFAULT, path); | |
1431 | + GetPrivateProfileIntW(BG_SECTIONW, BG_THEME_IMAGE_BRIGHTNESS1W, BG_THEME_IMAGE_BRIGHTNESS_DEFAULT, theme_imagefile); | |
1432 | + | |
1433 | + free(theme_imagefile); | |
1438 | 1434 | } |
1439 | 1435 | |
1440 | 1436 | // BGEnableが真でも、initialize_once == FALSEの場合は初期化をしない。 |
@@ -1458,10 +1454,14 @@ | ||
1458 | 1454 | BGNoCopyBits = ts.EtermLookfeel.BGNoCopyBits; |
1459 | 1455 | |
1460 | 1456 | //テンポラリーファイル名を生成 |
1461 | - GetTempPath(MAX_PATH, tempPath); | |
1462 | - GetTempFileName(tempPath, "ttAK", 0, BGDest.fileTmp); | |
1463 | - GetTempFileName(tempPath, "ttAK", 0, BGSrc1.fileTmp); | |
1464 | - GetTempFileName(tempPath, "ttAK", 0, BGSrc2.fileTmp); | |
1457 | + { | |
1458 | + char tempPath[MAX_PATH]; | |
1459 | + ZeroMemory(tempPath, sizeof(tempPath)); | |
1460 | + GetTempPathA(MAX_PATH, tempPath); | |
1461 | + GetTempFileNameA(tempPath, "ttAK", 0, BGDest.fileTmp); | |
1462 | + GetTempFileNameA(tempPath, "ttAK", 0, BGSrc1.fileTmp); | |
1463 | + GetTempFileNameA(tempPath, "ttAK", 0, BGSrc2.fileTmp); | |
1464 | + } | |
1465 | 1465 | |
1466 | 1466 | //デフォルト値 |
1467 | 1467 | BGDest.type = BG_PICTURE; |