Revision: 10303 https://osdn.net/projects/ttssh2/scm/svn/commits/10303 Author: zmatsuo Date: 2022-10-10 13:48:24 +0900 (Mon, 10 Oct 2022) Log Message: ----------- カラーテーマファイルのマニュアル追記、読み書きを修正 - カラーテーマ iniファイルフォーマットを変更 - 従来のフォーマットも読み込み可能だが近々未対応とする - #RRGGBB 形式が使用できるようにした - saveしたiniの R,G,B 形式の後ろに #RRGGBB が出力される - マニュアル追記 - Unicode化(途中) Modified Paths: -------------- trunk/doc/en/html/menu/setup-additional-visual-theme.html trunk/doc/en/html/setup/theme.html trunk/doc/ja/html/menu/setup-additional-visual-theme.html trunk/doc/ja/html/setup/theme.html trunk/installer/release/theme/color/README.md trunk/teraterm/teraterm/theme.h trunk/teraterm/teraterm/themedlg.cpp trunk/teraterm/teraterm/themefile.cpp trunk/teraterm/teraterm/vtdisp.c trunk/teraterm/teraterm/vtdisp.h -------------- next part -------------- Modified: trunk/doc/en/html/menu/setup-additional-visual-theme.html =================================================================== --- trunk/doc/en/html/menu/setup-additional-visual-theme.html 2022-10-07 15:43:29 UTC (rev 10302) +++ trunk/doc/en/html/menu/setup-additional-visual-theme.html 2022-10-10 04:48:24 UTC (rev 10303) @@ -29,6 +29,14 @@ <hr> + <h2>TODO</h2> + <ul> + <li>BGSPIPath(\x89摜\x82\xF0\x93ǂݍ\x9E\x82ނ̂ɗp\x82\xA2\x82\xE9\x81ASusie Plugin \x82\xAA\x8Ai\x94[\x82\xB3\x82\xEA\x82Ă\xA2\x82\xE9\x83t\x83H\x83\x8B\x83_\x82\xF0\x8Ew\x92肵\x82܂\xB7\x81B)\x82\xCC + \x90ݒ\xE8GUI\x82\xF0\x8D\xEC\x82\xE9 + </ul> + + <hr> + <h2 id="preview">preview/file tab</h2> preview<br> @@ -63,7 +71,7 @@ \x8Fォ\x82珇\x82ɔw\x8Ci\x89摜\x82\xAA\x8D\x87\x90\xAC\x82\xB3\x82\xEA\x82Ă\xA2\x82\xAD\x81B <dl> - <dt>base Color</dt> + <dt>Base Color</dt> <dd> \x94w\x8Ci\x89摜\x82\xF0\x8Eg\x97p\x82\xB5\x82Ȃ\xA2\x8Fꍇ\x82͂\xB1\x82̐F\x82œh\x82\xE8\x82Ԃ\xB3\x82\xEA\x82\xE9\x81B\x94w\x8Ci\x89摜\x82\xAA\x95`\x89悳\x82\xEA\x82Ȃ\xA2\x95\x94\x95\xAA\x82\xAA\x82\xA0\x82\xE9\x8Fꍇ\x82\xE0\x82\xB1\x82̐F\x82œh\x82\xE8\x82Ԃ\xB3\x82\xEA\x82\xE9\x81B </dd> Modified: trunk/doc/en/html/setup/theme.html =================================================================== --- trunk/doc/en/html/setup/theme.html 2022-10-07 15:43:29 UTC (rev 10302) +++ trunk/doc/en/html/setup/theme.html 2022-10-10 04:48:24 UTC (rev 10303) @@ -3,178 +3,233 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> -<title>Theme file</TITLE> +<title>Theme \x90ݒ\xE8\x83t\x83@\x83C\x83\x8B</TITLE> <meta http-equiv="Content-Style-Type" content="text/css"> <link rel="stylesheet" href="../style.css" type="text/css"> </head> <body> + <h1>Theme\x83t\x83@\x83C\x83\x8B</h1> - <h1>Theme \x90ݒ\xE8\x83t\x83@\x83C\x83\x8B</h1> + <ul> + <li><a href="#themefile">Theme\x83t\x83@\x83C\x83\x8B\x82ɂ\xA2\x82\xC4</a></li> + <li><a href="#BGTheme">BG(\x94w\x8Ci) Theme</a></li> + <li><a href="#ColorTheme">Color Theme</a></li> + </ul> - TODO + <h2>TODO</h2> <ul> - <li>BGSPIPath(\x89摜\x82\xF0\x93ǂݍ\x9E\x82ނ̂ɗp\x82\xA2\x82\xE9\x81ASusie Plugin \x82\xAA\x8Ai\x94[\x82\xB3\x82\xEA\x82Ă\xA2\x82\xE9\x83t\x83H\x83\x8B\x83_\x82\xF0\x8Ew\x92肵\x82܂\xB7\x81B)\x82̐ݒ\xE8GUI\x82\xF0\x8D\xEC\x82\xE9 <li>\x8Ed\x97l\x82\xF0\x82\xBF\x82\xE1\x82\xF1\x82ƌ\x88\x82߂\xE9 <li>\x8Ed\x97l\x82ɍ\x87\x82킹\x82\xC4<a href="https://ttssh2.osdn.jp/tmp/color/">color picker(\x89\xBC)</a>\x82\xF0\x8FC\x90\xB3 </ul> - <h2>theme\x83t\x83@\x83C\x83\x8B\x82̎\xED\x97\xDE</h2> + <h2 id="themefile">theme\x83t\x83@\x83C\x83\x8B\x82ɂ\xA2\x82\xC4</h2> \x83e\x81[\x83}\x83t\x83@\x83C\x83\x8B\x82ɂ͂\xA2\x82\xAD\x82\xA9\x82̎\xED\x97ނ\xAA\x82\xA0\x82\xE9\x81B <dl> - <dt>BG + \x83J\x83\x89\x81[</dt> + <dt>BG(\x94w\x8Ci)\x83e\x81[\x83}</dt> <dd> - [BG]\x82\xC6[Color Theme]\x82\xCC2\x83Z\x83N\x83V\x83\x87\x83\x93\x93\xFC\x82\xC1\x82\xBD\x83t\x83@\x83C\x83\x8B<br> - [BG]\x83Z\x83N\x83V\x83\x87\x83\x93\x82ɂ͔w\x8Ci\x89摜\x82̐ݒ肾\x82\xAF\x93\xFC\x82\xC1\x82Ă\xA2\x82\xE9 + [BG]\x83Z\x83N\x83V\x83\x87\x83\x93\x82\xAA\x93\xFC\x82\xC1\x82\xBD\x83t\x83@\x83C\x83\x8B<br> + \x82\xB1\x82̃Z\x83N\x83V\x83\x87\x83\x93\x82ɂ͔w\x8Ci\x89摜\x82̐ݒ肪\x93\xFC\x82\xE9 </dd> - <dt>BG \x82̂\xDD</dt> + <dt>\x83J\x83\x89\x81[\x83e\x81[\x83}</dt> <dd> - [BG]\x83Z\x83N\x83V\x83\x87\x83\x93\x82݂̂̃t\x83@\x83C\x83\x8B<br> - [BG]\x83Z\x83N\x83V\x83\x87\x83\x93\x82ɂ͔w\x8Ci\x89摜\x82̐ݒ肾\x82\xAF\x93\xFC\x82\xC1\x82Ă\xA2\x82\xE9 - </dd> - <dt>\x83J\x83\x89\x81[\x82̂\xDD</dt> + [Color Theme]\x83Z\x83N\x83V\x83\x87\x83\x93\x82\xAA\x93\xFC\x82\xC1\x82\xBD\x83t\x83@\x83C\x83\x8B<br> + \x82\xB1\x82̃Z\x83N\x83V\x83\x87\x83\x93\x82ɂ͕\xB6\x8E\x9A\x82̐F\x82̐ݒ肪\x93\xFC\x82\xE9 + <dt>\x8B\x8C\x83J\x83\x89\x81[\x83e\x81[\x83} (\x94p\x8E~\x97\\x92\xE8)</dt> <dd> - [Color Theme]\x82݂̂̃t\x83@\x83C\x83\x8B<br> + [BG]\x83Z\x83N\x83V\x83\x87\x83\x93\x82ɕ\xB6\x8E\x9A\x82̐F\x82̐ݒ肪\x93\xFC\x82\xC1\x82Ă\xA2\x82\xE9<br> + Tera Term 4 \x82ŃT\x83|\x81[\x83g\x82\xB5\x82Ă\xA2\x82\xBD\x83J\x83\x89\x81[\x83e\x81[\x83}<br> + \x93ǂݍ\x9E\x82݂͂ł\xAB\x82邪\x94p\x8E~\x97\\x92\xE8 </dd> - <dt>BG + \x8B\x8C\x83J\x83\x89\x81[ (\x94p\x8E~\x82\xB5\x82\xBD\x82\xA2)</dt> - <dd> - [BG]\x83Z\x83N\x83V\x83\x87\x83\x93\x82݂̂̃t\x83@\x83C\x83\x8B<br> - [BG]\x83Z\x83N\x83V\x83\x87\x83\x93\x82ɂ͔w\x8Ci\x89摜\x82ƕ\xB6\x8E\x9A\x82̐F\x8F\xEE\x95\xFC\x82\xC1\x82Ă\xA2\x82\xE9<br> - [BG]\x83Z\x83N\x83V\x83\x87\x83\x93\x82̐F\x8F\xEE\x95\xF1\x82͔p\x8E~\x82\xB5\x82\xBD\x82\xA2<br> - </dd> </dl> - <h3>BG theme</h3> + BG(\x94w\x8Ci)\x83e\x81[\x83}\x82ƃJ\x83\x89\x81[\x83e\x81[\x83}\x82\xF0\x95ʂ̃t\x83@\x83C\x83\x8B\x82ɕۑ\xB6\x82\xB5\x82Ă\xA8\x82\xAD\x82\xB1\x82Ƃ\xE0\x81A + 1\x82̃t\x83@\x83C\x83\x8B\x82ɗ\xBC\x95\xFB\x82\xF0\x95ۑ\xB6\x82\xB7\x82邱\x82Ƃ\xE0\x82ł\xAB\x82\xE9\x81B - ini\x83t\x83@\x83C\x83\x8B\x82\xCC[BG]\x83Z\x83N\x83V\x83\x87\x83\x93\x95\x94\x95\xAA + \x83t\x83H\x81[\x83}\x83b\x83g\x82\xCDWindows\x82\xCCini\x83t\x83@\x83C\x83\x8B\x81B + <h2 id="BGTheme">BG(\x94w\x8Ci)\x83e\x81[\x83}</h2> + + \x83Z\x83N\x83V\x83\x87\x83\x93\x96\xBC\x82\xCD"[BG]" + <dl> - <dt>BGPictureTone</dt> + <dt>BGDestColor</dt> <dd> - \x94w\x8Ci\x89摜(Dest)\x82Ƀf\x83X\x83N\x83g\x83b\x83v\x89摜(Src1)\x82ǂꂮ\x82炢\x83u\x83\x8C\x83\x93\x83h\x82\xB7\x82邩<br> - BGSrc1Alpha = 255 - BGPictureTone<br> - 0=\x83f\x83X\x83N\x83g\x83b\x83v\x89摜(Src1)\x82\xAA100%<br> - 255=\x94w\x8Ci\x89摜(Dest)\x82\xAA100% + \x94w\x8Ci\x89摜\x82\xF0\x8Eg\x97p\x82\xB5\x82Ȃ\xA2\x8Fꍇ\x82͂\xB1\x82̐F\x82œh\x82\xE8\x82Ԃ\xB3\x82\xEA\x82\xE9\x81B<br> + \x94w\x8Ci\x89摜\x82\xAA\x95`\x89悳\x82\xEA\x82Ȃ\xA2\x95\x94\x95\xAA\x82\xAA\x82\xA0\x82\xE9\x8Fꍇ\x82\xE0\x82\xB1\x82̐F\x82œh\x82\xE8\x82Ԃ\xB3\x82\xEA\x82\xE9\x81B </dd> - <dt>BGFadeColor</dt> + + <dt>BGDestFile</dt> <dd> - Src2\x82̐F<br> - BGFadeColor = BGSrc2Color + \x94w\x8Ci\x89摜 + \x83t\x83@\x83C\x83\x8B\x96\xBC\x82Ƀ\x8F\x83C\x83\x8B\x83h\x83J\x81[\x83h\x82\xAA\x8Ew\x92肳\x82ꂽ\x8Fꍇ\x81A\x88\xEA\x92v\x82\xB7\x82\xE9\x83t\x83@\x83C\x83\x8B\x82\xA9\x82烉\x83\x93\x83_\x83\x80\x82Ɉ\xEA\x82I\x82т܂\xB7\x81B<br> + \x91\x8A\x91p\x83X\x82𗘗p\x82\xB7\x82\xE9\x8Fꍇ\x82́A\x83e\x81[\x83}\x83t\x83@\x83C\x83\x8B\x82\xA9\x82\xE7\x82̑\x8A\x91p\x83X\x82\xF0\x8Ew\x92肵\x82Ă\xAD\x82\xBE\x82\xB3\x82\xA2\x81B<br> + \x93ǂݍ\x9E\x82߂\xE9\x83t\x83@\x83C\x83\x8B\x82̎\xED\x97ނ́ABGSPIPath \x82Ɋi\x94[\x82\xB3\x82ꂽ\x83v\x83\x89\x83O\x83C\x83\x93\x82ɂ\xE6\x82\xE8\x82܂\xB7\x81B<br> + \x83r\x83b\x83g\x83}\x83b\x83v\x82̓v\x83\x89\x83O\x83C\x83\x93\x82\xAA\x96\xB3\x82\xAD\x82Ă\xE0\x93ǂݍ\x9E\x82߂܂\xB7\x81B </dd> - <dt>BGFadeTone</dt> - <dd>Dest\x82\xC6Src1\x82̍\x87\x90\xAC\x89摜\x82ɒP\x90F(Src2)\x82\xF0\x82ǂꂮ\x82炢\x83u\x83\x8C\x83\x93\x83h\x82\xB7\x82邩<br> - BGSrc2Alpha = 255 - BGFadeTone<br> - 0=\x92P\x90F(Src2)\x82\xAA100%<br> - 255=Dest\x82\xC6Src1\x82̍\x87\x90\xAC\x89摜\x82\xAA100% + + <dt>BGDestPattern</dt> + <dd>\x94w\x8Ci\x89摜\x95`\x89\xE6\x95\xFB\x96@ + <dl> + <dt>stretch</dt> + <dt>tile</dt> + <dt>center</dt> + <dt>fit_width</dt> + <dt>fit_height</dt> + <dt>autofit</dt> + <dt>autofill</dt> + <dd> + FitWidth\x81AFitHeight \x82͉摜\x82̃A\x83X\x83y\x83N\x83g\x94\xE4\x82\xF0\x88ێ\x9D\x82\xB5\x82\xBD\x82܂܁A\x89摜\x82\xF0\x8Ag\x91\xE5\x8Fk\x8F\xAC\x82\xB5\x82܂\xB7\x81B<br> + AutoFit \x82́A\x83E\x83B\x83\x93\x83h\x83E\x82Ɖ摜\x82̊ԂɌ\x84\x8AԂ\xAA\x82ł\xAB\x82Ȃ\xA2\x82悤\x82ɁAFitWidth \x82\xC6 FitHeight \x82\xF0\x90\xE8\x91ւ\xA6\x82܂\xB7\x81B + </dd> + </dl> </dd> - <dt>BGReverseTextTone</t> + <dt>BGSrc1Alpha</dt> <dd> - 0 - 255<br> - The transparency value of the reverse text. + Windows\x82̕ǎ\x86\x89摜\x82\xF0\x83A\x83\x8B\x83t\x83@\x83u\x83\x8C\x83\x93\x83h\x82\xB7\x82\xE9\x81B<br> + \x94w\x8Ci\x89摜(Dest)\x82Ƀf\x83X\x83N\x83g\x83b\x83v\x89摜(Src1)\x82ǂꂮ\x82炢\x83u\x83\x8C\x83\x93\x83h\x82\xB7\x82\xE9\x82\xF0\x8Ew\x92肷\x82\xE9\x81B<br> + 0\x82̂Ƃ\xAB\x95ǎ\x86\x82̓u\x83\x8C\x83\x93\x83h\x82\xB3\x82\xEA\x82Ȃ\xA2\x81B<br> </dd> - <dt>BGPictureFile</dt> - <dd>file name<br> - You can specify the image file name merging with the wall paper.<br> - Tera Term will randomly select one of files when the wild card is specified.<br> - Please specify the relative path from the theme file when you want to use the relative path.<br> - The kind of file that Tera Term can load is depend the plugin stored in BGSPIPath.<br> - Tera Term can load the bitmap file when there is not plugin.<br> + + <dt>BGSrc2Color</dt> + <dd> + \x94w\x8Ci\x89摜\x91S\x91̂\xF0\x83A\x83\x8B\x83t\x83@\x83u\x83\x8C\x83\x93\x83h\x82\xB7\x82\xE9\x90F </dd> - <dt>BGPicturePattern</dt> - <dd>Stretch<br> - Tile<br> - Center<br> - FitWidth<br> - FitHeight<br> - AutoFit<br> - You can specify the painting method of the image file.<br> - Both FitWidth and FitHeight can expand or reduce the image while the aspect ratio of the image preserves.<br> - AutoFit can exchange FitWidth for FitHeight not to generate the space between the window and the image. + <dt>BGSrc2Alpha</dt> + <dd> + \x83A\x83\x8B\x83t\x83@\x83u\x83\x8C\x83\x93\x83h\x92l<br> + Dest\x82\xC6Src1\x82̍\x87\x90\xAC\x89摜\x82ɒP\x90F(Src2)\x82\xF0\x82ǂꂮ\x82炢\x83u\x83\x8C\x83\x93\x83h\x82\xB7\x82邩<br> </dd> - <dt>BGPictureBaseColor</dt> - <dd>R, G, B<br> - This color can paint between the image file and the window. + <dt>BGReverseTextTone</dt> + <dd> + 0 - 255<br> + \x94\xBD\x93]\x83e\x83L\x83X\x83g\x82̓\xA7\x96\xBE\x93x </dd> + </dl> - <dt>BGPictureTone</dt> - <dd>0 - 255<br> - The transparency value of the image file.</dd> + <h3 id="ColorTheme">color theme</h3> - <dt>BGFadeTone</dt> - <dd>0 - 255<br> - <td>This option can enable the whole background to fade.</dd> + <h4>section</h4> - <dt>BGFadeColor</dt> - <dd>R, G, B<br> - This option can configure the fade color.</dd> + "Color Theme" + + <h4>name</h4> + + <dl> + <dt>name</dt> + <dd>\x83e\x81[\x83}\x96\xBC\x81A\x92l\x82͕\xB6\x8E\x9A\x97\xF1</dd> </dl> + <h4>attribute color</h4> + <dl> - <dt>VTFore, Red ...</dt> - <dd>R, G, B<br> - This option can configure the text color.</dd> + <dt>VTColor</dt> + <dd>\x92ʏ핶\x8E\x9A\x90F, SGR 0</dd> + + <dt>BoldColor</dt> + <dd>SGR 1</dd> + + <dt>VTUnderlineColor</dt> + <dd>SGR 4</dd> + + <dt>BlinkColor</dt> + <dd>SGR 5</dd> + + <dt>ReverseColor</dt> + <dd>SGR 7</dd> + + <dt>URLColor</dt> + <dd> + URL\x95\xB6\x8E\x9A\x97\xF1<br> + Tera Term\x82\xAAURL\x95\xB6\x8E\x9A\x97\xF1\x82\xF0\x8C\x9F\x8Fo\x82\xB5\x82\xBD\x82Ƃ\xAB\x82ɕt\x89\xC1\x82\xB3\x82\xEA\x82镶\x8E\x9A\x83A\x83g\x83\x8A\x83r\x83\x85\x81[\x83g + </dd> + + <dt>\x92l (0 or 1), (0 or 1), (fore red), (fore green), (fore blue), (back red), (back green), (back blue)</dt> + <dt>\x92l (0 or 1), (0 or 1), (fore), (back)</dt> + <dd> + <dl> + <dt>(0 or 1)</dt> + <dd> + 1=default\x90F\x82\xA9\x82\xE7\x95ύX\x82\xB7\x82\xE9<br> + 0=\x95ύX\x82\xB5\x82Ȃ\xA2<br> + (VTColor\x82ł͎Q\x8FƂ\xB3\x82\xEA\x82Ȃ\xA2) + </dd> + <dt>(0 or 1)</dt> + <dd> + 1=\x95\xB6\x8E\x9A\x91\xAE\x90\xAB(Bold attribute\x93\x99)\x82̓Ǝ\xA9\x90F\x82\xF0\x97L\x8C\xF8<br> + 0=\x96\xB3\x8C\xF8\x82ɂ\xB7\x82\xE9<br> + (VTColor\x82ł͎Q\x8FƂ\xB3\x82\xEA\x82Ȃ\xA2) + </dd> + + <dt>(fore red), (fore green), (fore blue)</dt> + <dd>\x95\xB6\x8E\x9A\x82̐F\x81A\x8Ae\x92l\x82\xCD0\x82\xA9\x82\xE7255</dd> + + <dt>(back red), (back green), (back blue)</dt> + <dd>\x94w\x8Ci\x82̐F\x81A\x8Ae\x92l\x82\xCD0\x82\xA9\x82\xE7255</dd> + + <dt>(fore), (back)</dt> + <dd> + #RRBBGG \x82̌`\x8E\xAE\x82ŁA\x8Ae\x81X00 \x82\xA9\x82\xE7 FF \x82܂\xC5 + </dd> + </dl> + </dd> </dl> -</table> + <h4>ANSI color</h4> -<h2>Extension of theme file</h2> + 256\x90F/16\x90F ANSI color\x82̍ŏ\x89\x82\xCC16\x90F\x81B<br> + 8\x90F\x8E\x9E\x82́ADark color\x82\xF0\x8Eg\x97p\x82\xB5\x82Ȃ\xA2 -<p> -A user can configure the extension of the theme file based on the theme\Advanced.sample file.<br> -For example, an image file(sample.jpg) can be drawn in the Tera Term background. -Please specify the .ini file at the BGThemeFile entry of the teraterm.ini file. -</p> + <dl> + <dt>ANSIColor=(0 or 1)</dt> + <dd> + 1=default\x90F\x82\xA9\x82\xE7\x95ύX\x82\xB7\x82\xE9<br> + 0=\x95ύX\x82\xB5\x82Ȃ\xA2 + </dd> + </dl> -<pre> -[BG] -; Advanced Setting -; Image source setting -; Type : Color / Picture / Wallpaper -: Pattern : Stretch / Tile / Center / FitWidth / FitHeight / AutoFit -; AntiAlias : On / Off -; Color : R,G,B (0-255) -; Alpha : 0-255 -; File : wildcard => random select -; Dest = (Src1 * Src1Alpha + Dest * (255 - Src1Alpha)) / 255 -; Dest = (Src2 * Src2Alpha + Dest * (255 - Src2Alpha)) / 255 -BGReverseTextAlpha = 192 -; -BGDestType = Picture -BGDestFile = sample.jpg -BGDestPattern = AutoFit -BGDestAntiAlias = On -BGDestColor = 0,0,0 -; -BGSrc1Type = Color -BGSrc1File = -BGSrc1Pattern = -BGSrc1AntiAlias = -BGSrc1Color = 32,32,32 -BGSrc1Alpha = 64 -; -BGSrc2Type = Color -BGSrc2File = -BGSrc2Pattern = -BGSrc2AntiAlias = -BGSrc2Color = 32,32,32 -BGSrc2Alpha = 64 -</pre> + <dl> + <dt>Fore</dt> + <dd>256 ANSI color 15\x94\xD4<br> + \x92ʏ핶\x8E\x9A\x90F(Tera Term\x82ł\xCDVTColor\x82\xAA\x8Eg\x97p\x82\xB3\x82\xEA\x82\xE9) + </dd> -<h2>color theme</h2> + <dt>Back</dt> + <dd>256 ANSI color 0\x94\xD4<br> + \x92ʏ\xED\x94w\x8Ci\x90F(Tera Term\x82ł\xCDVTColor\x82\xAA\x8Eg\x97p\x82\xB3\x82\xEA\x82\xE9) + </dd> - TBD<br> + <dt>Red</dt> + <dt>Green</dt> + <dt>Yellow</dt> + <dt>Blue</dt> + <dt>Magenta</dt> + <dt>Cyan</dt> + <dt>DarkFore</dt> + <dt>DarkBack</dt> + <dt>DarkRed</dt> + <dt>DarkGreen</dt> + <dt>DarkYellow</dt> + <dt>DarkBlue</dt> + <dt>DarkMagenta</dt> + <dt>DarkCyan</dt> + <dd>\x8Ae\x95\xB6\x8E\x9A\x90F</dd> - TODO - <ul> - <li>\x8Ed\x97l\x8F\x91\x82\xAD - <li>release/theme/color/readme.md \x82Ƀ\x8A\x83\x93\x83N\x92\xA3\x82\xE9 - </ul> + <dt>\x92l (red), (green), (blue)</dt> + <dd>\x8Ae\x92l\x82\xCD0\x82\xA9\x82\xE7255</dd> + <dt>\x92l (color)</dt> + <dd> + #RRBBGG \x82̌`\x8E\xAE\x82ŁA\x8Ae\x81X00 \x82\xA9\x82\xE7 FF \x82܂\xC5 + </dd> + + </dl> + </body> </html> Modified: trunk/doc/ja/html/menu/setup-additional-visual-theme.html =================================================================== --- trunk/doc/ja/html/menu/setup-additional-visual-theme.html 2022-10-07 15:43:29 UTC (rev 10302) +++ trunk/doc/ja/html/menu/setup-additional-visual-theme.html 2022-10-10 04:48:24 UTC (rev 10303) @@ -29,6 +29,14 @@ <hr> + <h2>TODO</h2> + <ul> + <li>BGSPIPath(\x89摜\x82\xF0\x93ǂݍ\x9E\x82ނ̂ɗp\x82\xA2\x82\xE9\x81ASusie Plugin \x82\xAA\x8Ai\x94[\x82\xB3\x82\xEA\x82Ă\xA2\x82\xE9\x83t\x83H\x83\x8B\x83_\x82\xF0\x8Ew\x92肵\x82܂\xB7\x81B)\x82\xCC + \x90ݒ\xE8GUI\x82\xF0\x8D\xEC\x82\xE9 + </ul> + + <hr> + <h2 id="preview">preview/file tab</h2> preview<br> @@ -63,7 +71,7 @@ \x8Fォ\x82珇\x82ɔw\x8Ci\x89摜\x82\xAA\x8D\x87\x90\xAC\x82\xB3\x82\xEA\x82Ă\xA2\x82\xAD\x81B <dl> - <dt>base Color</dt> + <dt>Base Color</dt> <dd> \x94w\x8Ci\x89摜\x82\xF0\x8Eg\x97p\x82\xB5\x82Ȃ\xA2\x8Fꍇ\x82͂\xB1\x82̐F\x82œh\x82\xE8\x82Ԃ\xB3\x82\xEA\x82\xE9\x81B\x94w\x8Ci\x89摜\x82\xAA\x95`\x89悳\x82\xEA\x82Ȃ\xA2\x95\x94\x95\xAA\x82\xAA\x82\xA0\x82\xE9\x8Fꍇ\x82\xE0\x82\xB1\x82̐F\x82œh\x82\xE8\x82Ԃ\xB3\x82\xEA\x82\xE9\x81B </dd> Modified: trunk/doc/ja/html/setup/theme.html =================================================================== --- trunk/doc/ja/html/setup/theme.html 2022-10-07 15:43:29 UTC (rev 10302) +++ trunk/doc/ja/html/setup/theme.html 2022-10-10 04:48:24 UTC (rev 10303) @@ -9,172 +9,227 @@ </head> <body> + <h1>Theme\x83t\x83@\x83C\x83\x8B</h1> - <h1>Theme \x90ݒ\xE8\x83t\x83@\x83C\x83\x8B</h1> + <ul> + <li><a href="#themefile">Theme\x83t\x83@\x83C\x83\x8B\x82ɂ\xA2\x82\xC4</a></li> + <li><a href="#BGTheme">BG(\x94w\x8Ci) Theme</a></li> + <li><a href="#ColorTheme">Color Theme</a></li> + </ul> - TODO + <h2>TODO</h2> <ul> - <li>BGSPIPath(\x89摜\x82\xF0\x93ǂݍ\x9E\x82ނ̂ɗp\x82\xA2\x82\xE9\x81ASusie Plugin \x82\xAA\x8Ai\x94[\x82\xB3\x82\xEA\x82Ă\xA2\x82\xE9\x83t\x83H\x83\x8B\x83_\x82\xF0\x8Ew\x92肵\x82܂\xB7\x81B)\x82̐ݒ\xE8GUI\x82\xF0\x8D\xEC\x82\xE9 <li>\x8Ed\x97l\x82\xF0\x82\xBF\x82\xE1\x82\xF1\x82ƌ\x88\x82߂\xE9 <li>\x8Ed\x97l\x82ɍ\x87\x82킹\x82\xC4<a href="https://ttssh2.osdn.jp/tmp/color/">color picker(\x89\xBC)</a>\x82\xF0\x8FC\x90\xB3 </ul> - <h2>theme\x83t\x83@\x83C\x83\x8B\x82̎\xED\x97\xDE</h2> + <h2 id="themefile">theme\x83t\x83@\x83C\x83\x8B\x82ɂ\xA2\x82\xC4</h2> \x83e\x81[\x83}\x83t\x83@\x83C\x83\x8B\x82ɂ͂\xA2\x82\xAD\x82\xA9\x82̎\xED\x97ނ\xAA\x82\xA0\x82\xE9\x81B <dl> - <dt>BG + \x83J\x83\x89\x81[</dt> + <dt>BG(\x94w\x8Ci)\x83e\x81[\x83}</dt> <dd> - [BG]\x82\xC6[Color Theme]\x82\xCC2\x83Z\x83N\x83V\x83\x87\x83\x93\x93\xFC\x82\xC1\x82\xBD\x83t\x83@\x83C\x83\x8B<br> - [BG]\x83Z\x83N\x83V\x83\x87\x83\x93\x82ɂ͔w\x8Ci\x89摜\x82̐ݒ肾\x82\xAF\x93\xFC\x82\xC1\x82Ă\xA2\x82\xE9 + [BG]\x83Z\x83N\x83V\x83\x87\x83\x93\x82\xAA\x93\xFC\x82\xC1\x82\xBD\x83t\x83@\x83C\x83\x8B<br> + \x82\xB1\x82̃Z\x83N\x83V\x83\x87\x83\x93\x82ɂ͔w\x8Ci\x89摜\x82̐ݒ肪\x93\xFC\x82\xE9 </dd> - <dt>BG \x82̂\xDD</dt> + <dt>\x83J\x83\x89\x81[\x83e\x81[\x83}</dt> <dd> - [BG]\x83Z\x83N\x83V\x83\x87\x83\x93\x82݂̂̃t\x83@\x83C\x83\x8B<br> - [BG]\x83Z\x83N\x83V\x83\x87\x83\x93\x82ɂ͔w\x8Ci\x89摜\x82̐ݒ肾\x82\xAF\x93\xFC\x82\xC1\x82Ă\xA2\x82\xE9 - </dd> - <dt>\x83J\x83\x89\x81[\x82̂\xDD</dt> + [Color Theme]\x83Z\x83N\x83V\x83\x87\x83\x93\x82\xAA\x93\xFC\x82\xC1\x82\xBD\x83t\x83@\x83C\x83\x8B<br> + \x82\xB1\x82̃Z\x83N\x83V\x83\x87\x83\x93\x82ɂ͕\xB6\x8E\x9A\x82̐F\x82̐ݒ肪\x93\xFC\x82\xE9 + <dt>\x8B\x8C\x83J\x83\x89\x81[\x83e\x81[\x83} (\x94p\x8E~\x97\\x92\xE8)</dt> <dd> - [Color Theme]\x82݂̂̃t\x83@\x83C\x83\x8B<br> + [BG]\x83Z\x83N\x83V\x83\x87\x83\x93\x82ɕ\xB6\x8E\x9A\x82̐F\x82̐ݒ肪\x93\xFC\x82\xC1\x82Ă\xA2\x82\xE9<br> + Tera Term 4 \x82ŃT\x83|\x81[\x83g\x82\xB5\x82Ă\xA2\x82\xBD\x83J\x83\x89\x81[\x83e\x81[\x83}<br> + \x93ǂݍ\x9E\x82݂͂ł\xAB\x82邪\x94p\x8E~\x97\\x92\xE8 </dd> - <dt>BG + \x8B\x8C\x83J\x83\x89\x81[ (\x94p\x8E~\x82\xB5\x82\xBD\x82\xA2)</dt> - <dd> - [BG]\x83Z\x83N\x83V\x83\x87\x83\x93\x82݂̂̃t\x83@\x83C\x83\x8B<br> - [BG]\x83Z\x83N\x83V\x83\x87\x83\x93\x82ɂ͔w\x8Ci\x89摜\x82ƕ\xB6\x8E\x9A\x82̐F\x8F\xEE\x95\xFC\x82\xC1\x82Ă\xA2\x82\xE9<br> - [BG]\x83Z\x83N\x83V\x83\x87\x83\x93\x82̐F\x8F\xEE\x95\xF1\x82͔p\x8E~\x82\xB5\x82\xBD\x82\xA2<br> - </dd> </dl> - <h3>BG theme</h3> + BG(\x94w\x8Ci)\x83e\x81[\x83}\x82ƃJ\x83\x89\x81[\x83e\x81[\x83}\x82\xF0\x95ʂ̃t\x83@\x83C\x83\x8B\x82ɕۑ\xB6\x82\xB5\x82Ă\xA8\x82\xAD\x82\xB1\x82Ƃ\xE0\x81A + 1\x82̃t\x83@\x83C\x83\x8B\x82ɗ\xBC\x95\xFB\x82\xF0\x95ۑ\xB6\x82\xB7\x82邱\x82Ƃ\xE0\x82ł\xAB\x82\xE9\x81B - ini\x83t\x83@\x83C\x83\x8B\x82\xCC[BG]\x83Z\x83N\x83V\x83\x87\x83\x93\x95\x94\x95\xAA + \x83t\x83H\x81[\x83}\x83b\x83g\x82\xCDWindows\x82\xCCini\x83t\x83@\x83C\x83\x8B\x81B + <h2 id="BGTheme">BG(\x94w\x8Ci)\x83e\x81[\x83}</h2> + + \x83Z\x83N\x83V\x83\x87\x83\x93\x96\xBC\x82\xCD"[BG]" + <dl> - <dt>BGPictureTone</dt> + <dt>BGDestColor</dt> <dd> - \x94w\x8Ci\x89摜(Dest)\x82Ƀf\x83X\x83N\x83g\x83b\x83v\x89摜(Src1)\x82ǂꂮ\x82炢\x83u\x83\x8C\x83\x93\x83h\x82\xB7\x82邩<br> - BGSrc1Alpha = 255 - BGPictureTone<br> - 0=\x83f\x83X\x83N\x83g\x83b\x83v\x89摜(Src1)\x82\xAA100%<br> - 255=\x94w\x8Ci\x89摜(Dest)\x82\xAA100% + \x94w\x8Ci\x89摜\x82\xF0\x8Eg\x97p\x82\xB5\x82Ȃ\xA2\x8Fꍇ\x82͂\xB1\x82̐F\x82œh\x82\xE8\x82Ԃ\xB3\x82\xEA\x82\xE9\x81B<br> + \x94w\x8Ci\x89摜\x82\xAA\x95`\x89悳\x82\xEA\x82Ȃ\xA2\x95\x94\x95\xAA\x82\xAA\x82\xA0\x82\xE9\x8Fꍇ\x82\xE0\x82\xB1\x82̐F\x82œh\x82\xE8\x82Ԃ\xB3\x82\xEA\x82\xE9\x81B </dd> - <dt>BGFadeColor</dt> + + <dt>BGDestFile</dt> <dd> - Src2\x82̐F<br> - BGFadeColor = BGSrc2Color + \x94w\x8Ci\x89摜 + \x83t\x83@\x83C\x83\x8B\x96\xBC\x82Ƀ\x8F\x83C\x83\x8B\x83h\x83J\x81[\x83h\x82\xAA\x8Ew\x92肳\x82ꂽ\x8Fꍇ\x81A\x88\xEA\x92v\x82\xB7\x82\xE9\x83t\x83@\x83C\x83\x8B\x82\xA9\x82烉\x83\x93\x83_\x83\x80\x82Ɉ\xEA\x82I\x82т܂\xB7\x81B<br> + \x91\x8A\x91p\x83X\x82𗘗p\x82\xB7\x82\xE9\x8Fꍇ\x82́A\x83e\x81[\x83}\x83t\x83@\x83C\x83\x8B\x82\xA9\x82\xE7\x82̑\x8A\x91p\x83X\x82\xF0\x8Ew\x92肵\x82Ă\xAD\x82\xBE\x82\xB3\x82\xA2\x81B<br> + \x93ǂݍ\x9E\x82߂\xE9\x83t\x83@\x83C\x83\x8B\x82̎\xED\x97ނ́ABGSPIPath \x82Ɋi\x94[\x82\xB3\x82ꂽ\x83v\x83\x89\x83O\x83C\x83\x93\x82ɂ\xE6\x82\xE8\x82܂\xB7\x81B<br> + \x83r\x83b\x83g\x83}\x83b\x83v\x82̓v\x83\x89\x83O\x83C\x83\x93\x82\xAA\x96\xB3\x82\xAD\x82Ă\xE0\x93ǂݍ\x9E\x82߂܂\xB7\x81B </dd> - <dt>BGFadeTone</dt> - <dd>Dest\x82\xC6Src1\x82̍\x87\x90\xAC\x89摜\x82ɒP\x90F(Src2)\x82\xF0\x82ǂꂮ\x82炢\x83u\x83\x8C\x83\x93\x83h\x82\xB7\x82邩<br> - BGSrc2Alpha = 255 - BGFadeTone<br> - 0=\x92P\x90F(Src2)\x82\xAA100%<br> - 255=Dest\x82\xC6Src1\x82̍\x87\x90\xAC\x89摜\x82\xAA100% + + <dt>BGDestPattern</dt> + <dd>\x94w\x8Ci\x89摜\x95`\x89\xE6\x95\xFB\x96@ + <dl> + <dt>stretch</dt> + <dt>tile</dt> + <dt>center</dt> + <dt>fit_width</dt> + <dt>fit_height</dt> + <dt>autofit</dt> + <dt>autofill</dt> + <dd> + FitWidth\x81AFitHeight \x82͉摜\x82̃A\x83X\x83y\x83N\x83g\x94\xE4\x82\xF0\x88ێ\x9D\x82\xB5\x82\xBD\x82܂܁A\x89摜\x82\xF0\x8Ag\x91\xE5\x8Fk\x8F\xAC\x82\xB5\x82܂\xB7\x81B<br> + AutoFit \x82́A\x83E\x83B\x83\x93\x83h\x83E\x82Ɖ摜\x82̊ԂɌ\x84\x8AԂ\xAA\x82ł\xAB\x82Ȃ\xA2\x82悤\x82ɁAFitWidth \x82\xC6 FitHeight \x82\xF0\x90\xE8\x91ւ\xA6\x82܂\xB7\x81B + </dd> + </dl> </dd> - <dt>BGReverseTextTone</dt> + <dt>BGSrc1Alpha</dt> <dd> - 0 - 255<br> - \x94\xBD\x93]\x83e\x83L\x83X\x83g\x82̓\xA7\x96\xBE\x93x + Windows\x82̕ǎ\x86\x89摜\x82\xF0\x83A\x83\x8B\x83t\x83@\x83u\x83\x8C\x83\x93\x83h\x82\xB7\x82\xE9\x81B<br> + \x94w\x8Ci\x89摜(Dest)\x82Ƀf\x83X\x83N\x83g\x83b\x83v\x89摜(Src1)\x82ǂꂮ\x82炢\x83u\x83\x8C\x83\x93\x83h\x82\xB7\x82\xE9\x82\xF0\x8Ew\x92肷\x82\xE9\x81B<br> + 0\x82̂Ƃ\xAB\x95ǎ\x86\x82̓u\x83\x8C\x83\x93\x83h\x82\xB3\x82\xEA\x82Ȃ\xA2\x81B<br> </dd> - <dt>BGPictureFile</dt> + + <dt>BGSrc2Color</dt> <dd> - \x83t\x83@\x83C\x83\x8B\x96\xBC<br> - \x95ǎ\x86\x82ƍ\x87\x90\xAC\x82\xB7\x82\xE9\x89摜\x83t\x83@\x83C\x83\x8B\x96\xBC\x82\xF0\x8Ew\x92肵\x82܂\xB7\x81B<br> - \x83t\x83@\x83C\x83\x8B\x96\xBC\x82Ƀ\x8F\x83C\x83\x8B\x83h\x83J\x81[\x83h\x82\xAA\x8Ew\x92肳\x82ꂽ\x8Fꍇ\x81A\x88\xEA\x92v\x82\xB7\x82\xE9\x83t\x83@\x83C\x83\x8B\x82\xA9\x82烉\x83\x93\x83_\x83\x80\x82Ɉ\xEA\x82I\x82т܂\xB7\x81B<br> - \x91\x8A\x91p\x83X\x82𗘗p\x82\xB7\x82\xE9\x8Fꍇ\x82́A\x83e\x81[\x83}\x83t\x83@\x83C\x83\x8B\x82\xA9\x82\xE7\x82̑\x8A\x91p\x83X\x82\xF0\x8Ew\x92肵\x82Ă\xAD\x82\xBE\x82\xB3\x82\xA2\x81B<br> - \x93ǂݍ\x9E\x82߂\xE9\x83t\x83@\x83C\x83\x8B\x82̎\xED\x97ނ́ABGSPIPath \x82Ɋi\x94[\x82\xB3\x82ꂽ\x83v\x83\x89\x83O\x83C\x83\x93\x82ɂ\xE6\x82\xE8\x82܂\xB7\x81B<br> - \x83r\x83b\x83g\x83}\x83b\x83v\x82̓v\x83\x89\x83O\x83C\x83\x93\x82\xAA\x96\xB3\x82\xAD\x82Ă\xE0\x93ǂݍ\x9E\x82߂܂\xB7\x81B + \x94w\x8Ci\x89摜\x91S\x91̂\xF0\x83A\x83\x8B\x83t\x83@\x83u\x83\x8C\x83\x93\x83h\x82\xB7\x82\xE9\x90F </dd> - <dt>BGPicturePattern</dt> - <dd>Stretch<br> - Tile<br> - Center<br> - FitWidth<br> - FitHeight<br> - AutoFit<br> - \x89摜\x83t\x83@\x83C\x83\x8B\x82̕`\x89\xE6\x95\xFB\x96@\x82\xF0\x8Ew\x92肵\x82܂\xB7\x81B<br> - FitWidth\x81AFitHeight \x82͉摜\x82̃A\x83X\x83y\x83N\x83g\x94\xE4\x82\xF0\x88ێ\x9D\x82\xB5\x82\xBD\x82܂܁A\x89摜\x82\xF0\x8Ag\x91\xE5\x8Fk\x8F\xAC\x82\xB5\x82܂\xB7\x81B<br> - AutoFit \x82́A\x83E\x83B\x83\x93\x83h\x83E\x82Ɖ摜\x82̊ԂɌ\x84\x8AԂ\xAA\x82ł\xAB\x82Ȃ\xA2\x82悤\x82ɁAFitWidth \x82\xC6 FitHeight \x82\xF0\x90\xE8\x91ւ\xA6\x82܂\xB7\x81B + <dt>BGSrc2Alpha</dt> + <dd> + \x83A\x83\x8B\x83t\x83@\x83u\x83\x8C\x83\x93\x83h\x92l<br> + Dest\x82\xC6Src1\x82̍\x87\x90\xAC\x89摜\x82ɒP\x90F(Src2)\x82\xF0\x82ǂꂮ\x82炢\x83u\x83\x8C\x83\x93\x83h\x82\xB7\x82邩<br> </dd> - <dt>BGPictureBaseColor</dt> - <dd>R, G, B<br> - \x89摜\x82ƃE\x83B\x83\x93\x83h\x83E\x82̊ԂɌ\x84\x8AԂ\xAA\x82ł\xAB\x82\xBD\x8Fꍇ\x81A\x82\xB1\x82̐F\x82œh\x82\xE7\x82\xEA\x82܂\xB7\x81B + <dt>BGReverseTextTone</dt> + <dd> + 0 - 255<br> + \x94\xBD\x93]\x83e\x83L\x83X\x83g\x82̓\xA7\x96\xBE\x93x </dd> + </dl> - <dt>BGPictureTone</dt> - <dd>0 - 255<br> - \x89摜\x83t\x83@\x83C\x83\x8B\x82̓\xA7\x96\xBE\x93x + <h3 id="ColorTheme">color theme</h3> + + <h4>section</h4> + + "Color Theme" + + <h4>name</h4> + + <dl> + <dt>name</dt> + <dd>\x83e\x81[\x83}\x96\xBC\x81A\x92l\x82͕\xB6\x8E\x9A\x97\xF1</dd> + </dl> + + <h4>attribute color</h4> + + <dl> + <dt>VTColor</dt> + <dd>\x92ʏ핶\x8E\x9A\x90F, SGR 0</dd> + + <dt>BoldColor</dt> + <dd>SGR 1</dd> + + <dt>VTUnderlineColor</dt> + <dd>SGR 4</dd> + + <dt>BlinkColor</dt> + <dd>SGR 5</dd> + + <dt>ReverseColor</dt> + <dd>SGR 7</dd> + + <dt>URLColor</dt> + <dd> + URL\x95\xB6\x8E\x9A\x97\xF1<br> + Tera Term\x82\xAAURL\x95\xB6\x8E\x9A\x97\xF1\x82\xF0\x8C\x9F\x8Fo\x82\xB5\x82\xBD\x82Ƃ\xAB\x82ɕt\x89\xC1\x82\xB3\x82\xEA\x82镶\x8E\x9A\x83A\x83g\x83\x8A\x83r\x83\x85\x81[\x83g </dd> - <dt>BGFadeTone</dt> - <dd>0 - 255<br> - \x94w\x8Ci\x91S\x91̂\xF0\x83t\x83F\x81[\x83h\x82\xB5\x82܂\xB7\x81B</dd> + <dt>\x92l (0 or 1), (0 or 1), (fore red), (fore green), (fore blue), (back red), (back green), (back blue)</dt> + <dt>\x92l (0 or 1), (0 or 1), (fore), (back)</dt> + <dd> + <dl> + <dt>(0 or 1)</dt> + <dd> + 1=default\x90F\x82\xA9\x82\xE7\x95ύX\x82\xB7\x82\xE9<br> + 0=\x95ύX\x82\xB5\x82Ȃ\xA2<br> + (VTColor\x82ł͎Q\x8FƂ\xB3\x82\xEA\x82Ȃ\xA2) + </dd> + <dt>(0 or 1)</dt> + <dd> + 1=\x95\xB6\x8E\x9A\x91\xAE\x90\xAB(Bold attribute\x93\x99)\x82̓Ǝ\xA9\x90F\x82\xF0\x97L\x8C\xF8<br> + 0=\x96\xB3\x8C\xF8\x82ɂ\xB7\x82\xE9<br> + (VTColor\x82ł͎Q\x8FƂ\xB3\x82\xEA\x82Ȃ\xA2) + </dd> - <dt>BGFadeColor</dt> - <dd>R, G, B<br> - \x83t\x83F\x81[\x83h\x82\xB5\x82\xBD\x82Ƃ\xAB\x82̐F\x82\xF0\x8Ew\x92肵\x82܂\xB7\x81B</dd> + <dt>(fore red), (fore green), (fore blue)</dt> + <dd>\x95\xB6\x8E\x9A\x82̐F\x81A\x8Ae\x92l\x82\xCD0\x82\xA9\x82\xE7255</dd> + + <dt>(back red), (back green), (back blue)</dt> + <dd>\x94w\x8Ci\x82̐F\x81A\x8Ae\x92l\x82\xCD0\x82\xA9\x82\xE7255</dd> + + <dt>(fore), (back)</dt> + <dd> + #RRBBGG \x82̌`\x8E\xAE\x82ŁA\x8Ae\x81X00 \x82\xA9\x82\xE7 FF \x82܂\xC5 + </dd> + </dl> + </dd> </dl> + <h4>ANSI color</h4> + + 256\x90F/16\x90F ANSI color\x82̍ŏ\x89\x82\xCC16\x90F\x81B<br> + 8\x90F\x8E\x9E\x82́ADark color\x82\xF0\x8Eg\x97p\x82\xB5\x82Ȃ\xA2 + <dl> - <dt>VTFore \x82\xE2 Red \x82Ȃ\xC7 (\x94p\x8E~)</dt> - <dd>R, G, B<br> - \x83e\x83L\x83X\x83g\x82̐F\x82\xF0\x90ݒ肵\x82܂\xB7\x81B</dd> + <dt>ANSIColor=(0 or 1)</dt> + <dd> + 1=default\x90F\x82\xA9\x82\xE7\x95ύX\x82\xB7\x82\xE9<br> + 0=\x95ύX\x82\xB5\x82Ȃ\xA2 + </dd> </dl> -<h2>\x83e\x81[\x83}\x83t\x83@\x83C\x83\x8B\x82̊g\x92\xA3\x90ݒ\xE8</h2> + <dl> + <dt>Fore</dt> + <dd>256 ANSI color 15\x94\xD4<br> + \x92ʏ핶\x8E\x9A\x90F(Tera Term\x82ł\xCDVTColor\x82\xAA\x8Eg\x97p\x82\xB3\x82\xEA\x82\xE9) + </dd> -<p> -theme\Advanced.sample \x83t\x83@\x83C\x83\x8B\x82𗘗p\x82\xB5\x82āA\x8Ag\x92\xA3\x90ݒ\xE8\x82\xF0\x82\xB7\x82邱\x82Ƃ\xAA\x82ł\xAB\x82܂\xB7\x81B<br> -\x89\xBA\x8BL\x82́A\x8Ew\x92肵\x82\xBD\x89摜\x83t\x83@\x83C\x83\x8B(sample.jpg)\x82\xF0 Tera Term \x82̔w\x8Ci\x82ɕ`\x89悷\x82\xE9\x97\xE1\x82ŁA -teraterm.ini \x82\xCC BGThemeFile \x83G\x83\x93\x83g\x83\x8A\x82Ŏw\x92肵\x82Ă\xAD\x82\xBE\x82\xB3\x82\xA2\x81B -</p> + <dt>Back</dt> + <dd>256 ANSI color 0\x94\xD4<br> + \x92ʏ\xED\x94w\x8Ci\x90F(Tera Term\x82ł\xCDVTColor\x82\xAA\x8Eg\x97p\x82\xB3\x82\xEA\x82\xE9) + </dd> -<pre> -[BG] -; Advanced Setting -; Image source setting -; Type : Color / Picture / Wallpaper -: Pattern : Stretch / Tile / Center / FitWidth / FitHeight / AutoFit -; AntiAlias : On / Off -; Color : R,G,B (0-255) -; Alpha : 0-255 -; File : wildcard => random select -; Dest = (Src1 * Src1Alpha + Dest * (255 - Src1Alpha)) / 255 -; Dest = (Src2 * Src2Alpha + Dest * (255 - Src2Alpha)) / 255 -BGReverseTextAlpha = 192 -; -BGDestType = Picture -BGDestFile = sample.jpg -BGDestPattern = AutoFit -BGDestAntiAlias = On -BGDestColor = 0,0,0 -; -BGSrc1Type = Color -BGSrc1File = -BGSrc1Pattern = -BGSrc1AntiAlias = -BGSrc1Color = 32,32,32 -BGSrc1Alpha = 64 -; -BGSrc2Type = Color -BGSrc2File = -BGSrc2Pattern = -BGSrc2AntiAlias = -BGSrc2Color = 32,32,32 -BGSrc2Alpha = 64 -</pre> + <dt>Red</dt> + <dt>Green</dt> + <dt>Yellow</dt> + <dt>Blue</dt> + <dt>Magenta</dt> + <dt>Cyan</dt> + <dt>DarkFore</dt> + <dt>DarkBack</dt> + <dt>DarkRed</dt> + <dt>DarkGreen</dt> + <dt>DarkYellow</dt> + <dt>DarkBlue</dt> + <dt>DarkMagenta</dt> + <dt>DarkCyan</dt> + <dd>\x8Ae\x95\xB6\x8E\x9A\x90F</dd> -<h2>color theme</h2> + <dt>\x92l (red), (green), (blue)</dt> + <dd>\x8Ae\x92l\x82\xCD0\x82\xA9\x82\xE7255</dd> - TBD<br> + <dt>\x92l (color)</dt> + <dd> + #RRBBGG \x82̌`\x8E\xAE\x82ŁA\x8Ae\x81X00 \x82\xA9\x82\xE7 FF \x82܂\xC5 + </dd> - TODO - <ul> - <li>\x8Ed\x97l\x8F\x91\x82\xAD - <li>release/theme/color/readme.md \x82Ƀ\x8A\x83\x93\x83N\x92\xA3\x82\xE9 - </ul> + </dl> </body> </html> Modified: trunk/installer/release/theme/color/README.md =================================================================== --- trunk/installer/release/theme/color/README.md 2022-10-07 15:43:29 UTC (rev 10302) +++ trunk/installer/release/theme/color/README.md 2022-10-10 04:48:24 UTC (rev 10303) @@ -1,5 +1,9 @@ # color theme folder +- see [Setup Files]/[theme file] in help +- Tera Term color theme plugin was referened. + - https://osdn.net/users/doda/pf/TTXColorTheme/ + ## themes - Solarized Dark @@ -19,12 +23,3 @@ - Color UniversalDesign 4 - 色覚多様性に対応した設定例 - カラーユニバーサルデザイン(CUD)推奨配色セット ver.4に準拠 - -## format - -- 未決定 - - まだ変更すると思う - - TBD -- Tera Term カラーテーマプラグイン を参考にしました。 - - https://osdn.net/users/doda/pf/TTXColorTheme/ - Modified: trunk/teraterm/teraterm/theme.h =================================================================== --- trunk/teraterm/teraterm/theme.h 2022-10-07 15:43:29 UTC (rev 10302) +++ trunk/teraterm/teraterm/theme.h 2022-10-10 04:48:24 UTC (rev 10303) @@ -66,22 +66,26 @@ // color theme //////////////////// +// Character Attributes +// Normal(SGR 0), BOLD(SGR 1),... typedef struct { - BOOL change; - BOOL enable; - COLORREF fg; - COLORREF bg; + BOOL change; // TRUE/FALSE = default\x90F\x82\xA9\x82\xE7\x95ύX\x82\xB7\x82\xE9/\x95ύX\x82\xB5\x82Ȃ\xA2 + BOOL enable; // TRUE/FALSE = \x82\xB1\x82̕\xB6\x8E\x9A\x91\xAE\x90\xAB(Bold attribute\x93\x99)\x82̓Ǝ\xA9\x90F\x82\xF0\x97L\x8C\xF8/\x96\xB3\x8C\xF8\x82ɂ\xB7\x82\xE9 + COLORREF fg; // Fore color (\x95\xB6\x8E\x9A\x91\xAE\x90\xAB\x82̓Ǝ\xA9\x90F\x82\xAA\x97L\x8C\xF8\x82ȏꍇ) + COLORREF bg; // Back color (\x95\xB6\x8E\x9A\x91\xAE\x90\xAB\x82̓Ǝ\xA9\x90F\x82\xAA\x97L\x8C\xF8\x82ȏꍇ) } TColorSetting; +// ANSI Color typedef struct { - BOOL change; - BOOL enable; - COLORREF color[16]; + BOOL change; // TRUE/FALSE = default\x90F\x82\xA9\x82\xE7\x95ύX\x82\xB7\x82\xE9/\x95ύX\x82\xB5\x82Ȃ\xA2 + //BOOL enable; // \x95s\x97v\x82\xA9? + COLORREF color[16]; // ANSI color 256\x90F \x82̍ŏ\x89\x82\xCC16\x90F, (\x91O\x94\xBC\x82\xAA\x88Â\xA2\x90F,\x8C㔼\x82\xAA\x8C\xB4\x90F\x82̖\xBE\x82邢\x90F) } TAnsiColorSetting; +// color theme typedef struct { - char name[50]; - TColorSetting vt; + wchar_t name[50]; + TColorSetting vt; // SGR 0 TColorSetting bold; // SGR 1 TColorSetting underline; // SGR 4 TColorSetting blink; // SGR 5 @@ -100,8 +104,7 @@ // file / themefile.cpp void ThemeLoadBG(const wchar_t *file, BGTheme *bg_theme); -void ThemeLoadColor(const wchar_t *fn, TColorTheme *color_theme); -void ThemeLoadColorOld(const wchar_t *file, TColorTheme *theme); +void ThemeLoadColor(const wchar_t *fname, TColorTheme *color_theme); void ThemeLoad(const wchar_t *fname, BGTheme *bg_theme, TColorTheme *color_theme); void ThemeSaveBG(const BGTheme *bg_theme, const wchar_t *fname); void ThemeSaveColor(TColorTheme *color_theme, const wchar_t *fname); Modified: trunk/teraterm/teraterm/themedlg.cpp =================================================================== --- trunk/teraterm/teraterm/themedlg.cpp 2022-10-07 15:43:29 UTC (rev 10302) +++ trunk/teraterm/teraterm/themedlg.cpp 2022-10-10 04:48:24 UTC (rev 10303) @@ -431,7 +431,7 @@ const int b = GetBValue(c); wchar_t color_str[64]; - swprintf_s(color_str, L"0x%02x%02x%02x", r,g,b); + swprintf_s(color_str, L"#%02x%02x%02x", r,g,b); item.mask = LVIF_TEXT; item.iItem = y; item.iSubItem = 2; @@ -498,7 +498,7 @@ //ListView_InsertColumn(hWndList, 1, &lvcol); SendMessage(hWndList, LVM_INSERTCOLUMNA, 1, (LPARAM)&lvcol); - lvcol.pszText = (LPSTR)"value(RRGGBB)"; + lvcol.pszText = (LPSTR)"value(#RRGGBB)"; lvcol.iSubItem = 2; //ListView_InsertColumn(hWndList, 1, &lvcol); SendMessage(hWndList, LVM_INSERTCOLUMNA, 2, (LPARAM)&lvcol); @@ -748,7 +748,12 @@ OPENFILENAMEW ofn = {}; wchar_t theme_file[MAX_PATH]; - wcscpy_s(theme_file, _countof(theme_file), ts->EtermLookfeel.BGThemeFileW); + if (ts->EtermLookfeel.BGThemeFileW != NULL) { + wcscpy_s(theme_file, _countof(theme_file), ts->EtermLookfeel.BGThemeFileW); + } + else { + theme_file[0] = 0; + } ofn.lStructSize = get_OPENFILENAME_SIZEW(); ofn.hwndOwner = hWnd; Modified: trunk/teraterm/teraterm/themefile.cpp =================================================================== --- trunk/teraterm/teraterm/themefile.cpp 2022-10-07 15:43:29 UTC (rev 10302) +++ trunk/teraterm/teraterm/themefile.cpp 2022-10-10 04:48:24 UTC (rev 10303) @@ -35,6 +35,7 @@ #include "asprintf.h" #include "inifile_com.h" #include "win32helper.h" +#include "codeconv.h" #include "theme.h" @@ -42,18 +43,36 @@ #define BG_SECTION "BG" #define BG_SECTIONW L"BG" #define BG_DESTFILE "BGDestFile" -#define BG_DESTFILEW L"BGDestFile" -//#define BG_THEME_IMAGEFILE "theme\\ImageFile.INI" -//#define BG_THEME_IMAGEFILE_DEFAULT "theme\\*.INI" -#define BG_THEME_IMAGE_BRIGHTNESS_DEFAULT 64 #define BG_THEME_IMAGE_BRIGHTNESS1 "BGSrc1Alpha" -#define BG_THEME_IMAGE_BRIGHTNESS1W L"BGSrc1Alpha" #define BG_THEME_IMAGE_BRIGHTNESS2 "BGSrc2Alpha" -//#define BG_THEME_IMAGEFILE_NAME "ImageFile.INI" -//#define BG_THEME_IMAGEFILE_NAMEW L"ImageFile.INI" -//#define BG_THEME_THEMEFILE_SCALE "Scale.INI" -//#define BG_THEME_THEMEFILE_TILE "Tile.INI" +/** + * ANSI256\x90F\x8E\x9E\x82̐擪16\x90F + * INI\x83t\x83@\x83C\x83\x8B\x82\xA9\x82\xE7\x93ǂݍ\x9E\x82ނƂ\xAB\x82̃L\x81[\x83\x8F\x81[\x83h\x82ƐF\x94ԍ\x86\x91Ή\x9E + */ +static const struct { + int index; + const wchar_t *key; +} ansi_list[] = { + 7 + 8, L"Fore", + 0, L"Back", + 1 + 8, L"Red", + 2 + 8, L"Green", + 3 + 8, L"Yellow", + 4 + 8, L"Blue", + 5 + 8, L"Magenta", + 6 + 8, L"Cyan", + + 7, L"DarkFore", + 0 + 8, L"DarkBack", + 1, L"DarkRed", + 2, L"DarkGreen", + 3, L"DarkYellow", + 4, L"DarkBlue", + 5, L"DarkMagenta", + 6, L"DarkCyan", +}; + const BG_PATTERN_ST *ThemeBGPatternList(int index) { static const BG_PATTERN_ST bg_pattern_list[] = { @@ -72,28 +91,50 @@ return &bg_pattern_list[index]; } +static COLORREF LoadColorOneANSI(const wchar_t *section, const wchar_t *key, const wchar_t *file, COLORREF defcolor) +{ + int r; + wchar_t *str; + DWORD e = hGetPrivateProfileStringW(section, key, NULL, file, &str); + if (e != 0 || *str == 0) { + free(str); + return defcolor; + } + if (*str == L'#') { + // #RRGGBB \x8C`\x8E\xAE + DWORD i32; + r = swscanf_s(str, L"#%08x", &i32); + if (r == 1) { + free(str); + return RGB((i32 & 0xff0000) >> 16, (i32 & 0x00ff00) >> 8, (i32 & 0x0000ff)); + } + } + // R, G, B \x8C`\x8E\xAE + int red, green, blue; + r = swscanf_s(str, L"%d , %d , %d", &red, &green, &blue); + free(str); + if (r == 3) { + return RGB(red, green, blue); + } + return defcolor; +} + static COLORREF BGGetColor(const char *name, COLORREF defcolor, const wchar_t *file) { - unsigned int r, g, b; - char colorstr[256], defstr[256]; - - _snprintf_s(defstr, sizeof(defstr), _TRUNCATE, "%d,%d,%d", GetRValue(defcolor), GetGValue(defcolor), - GetBValue(defcolor)); - - GetPrivateProfileStringAFileW(BG_SECTION, name, defstr, colorstr, 255, file); - - r = g = b = 0; - - sscanf(colorstr, "%d , %d , %d", &r, &g, &b); - - return RGB(r, g, b); + const wchar_t *section = BG_SECTIONW; + wchar_t *keyW = ToWcharA(name); + COLORREF color = LoadColorOneANSI(section, keyW, file, defcolor); + free(keyW); + return color; } /* * color theme\x97p\x83\x8D\x81[\x83h */ -void ThemeLoadColorOld(const wchar_t *file, TColorTheme *theme) +static void ThemeLoadColorOld(const wchar_t *file, TColorTheme *theme) { + theme->ansicolor.change = TRUE; + theme->ansicolor.color[IdFore] = BGGetColor("Fore", theme->ansicolor.color[IdFore], file); theme->ansicolor.color[IdBack] = BGGetColor("Back", theme->ansicolor.color[IdBack], file); theme->ansicolor.color[IdRed] = BGGetColor("Red", theme->ansicolor.color[IdRed], file); @@ -114,39 +155,64 @@ theme->vt.fg = BGGetColor("VTFore", theme->vt.fg, file); theme->vt.bg = BGGetColor("VTBack", theme->vt.bg, file); + theme->vt.change = TRUE; + theme->vt.enable = TRUE; theme->blink.fg = BGGetColor("VTBlinkFore", theme->blink.fg, file); theme->blink.bg = BGGetColor("VTBlinkBack", theme->blink.bg, file); + theme->blink.change = TRUE; + theme->blink.enable = TRUE; theme->bold.fg = BGGetColor("VTBoldFore", theme->bold.fg, file); theme->bold.bg = BGGetColor("VTBoldBack", theme->bold.bg, file); + theme->bold.change = TRUE; + theme->bold.enable = TRUE; theme->underline.fg = BGGetColor("VTUnderlineFore", theme->underline.fg, file); theme->underline.bg = BGGetColor("VTUnderlineBack", theme->underline.bg, file); + theme->underline.change = TRUE; + theme->underline.enable = TRUE; theme->reverse.fg = BGGetColor("VTReverseFore", theme->reverse.fg, file); theme->reverse.bg = BGGetColor("VTReverseBack", theme->reverse.bg, file); + theme->reverse.change = TRUE; + theme->reverse.enable = TRUE; theme->url.fg = BGGetColor("URLFore", theme->url.fg, file); theme->url.bg = BGGetColor("URLBack", theme->url.bg, file); + theme->url.change = TRUE; + theme->url.enable = TRUE; } /** - * BG\x82\xF0\x83\x8D\x81[\x83h + * save color one attribute */ -static void BGSaveColorOne(const TColorSetting *color, const char *key, const wchar_t *fn) +static void SaveColorAttr(const wchar_t *section, const wchar_t *key, const TColorSetting *color, const wchar_t *fn) { - char buf[512]; + wchar_t *buf; COLORREF fg = color->fg; COLORREF bg = color->bg; + int sp_len = 20 - (int)wcslen(key); + aswprintf(&buf, L"%*.*s %d,%d, %3hhu,%3hhu,%3hhu, %3hhu,%3hhu,%3hhu ; #%02x%02x%02x, #%02x%02x%02x", + sp_len, sp_len, L" ", + color->change, color->enable, + GetRValue(fg), GetGValue(fg), GetBValue(fg), + GetRValue(bg), GetGValue(bg), GetBValue(bg), + GetRValue(fg), GetGValue(fg), GetBValue(fg), + GetRValue(bg), GetGValue(bg), GetBValue(bg)); + WritePrivateProfileStringW(section, key, buf, fn); + free(buf); +} - sprintf(buf, "%d,%d, %d,%d,%d, %d,%d,%d", 1, 1, - GetRValue(fg), GetGValue(fg), GetBValue(fg), - GetRValue(bg), GetGValue(bg), GetBValue(bg)); - WritePrivateProfileStringAFileW("Color Theme", key, buf, fn); +static void BGSaveColorOne(const TColorSetting *color, const char *key, const wchar_t *fn) +{ + const wchar_t *section = L"Color Theme"; + wchar_t *keyW = ToWcharA(key); + SaveColorAttr(section, keyW, color, fn); + free(keyW); } -static void BGSaveColorANSI(TAnsiColorSetting *color, const wchar_t *fn) +static void BGSaveColorANSI(const TAnsiColorSetting *color, const wchar_t *fn) { int i; wchar_t *buff = NULL; @@ -155,7 +221,7 @@ for (i = 0; i < 16; i++) { wchar_t color_str[32]; const COLORREF c = color->color[i]; - swprintf(color_str, _countof(color_str), L"%d,%d,%d, ", GetRValue(c), GetGValue(c), GetBValue(c)); + swprintf(color_str, _countof(color_str), L"%hhu,%hhu,%hhu, ", GetRValue(c), GetGValue(c), GetBValue(c)); awcscat(&buff, color_str); } @@ -163,8 +229,39 @@ free(buff); } -void ThemeSaveColor(TColorTheme *color_theme, const wchar_t *fn) +static void SaveColorOneANSI(const wchar_t *section, const wchar_t *key, const wchar_t *file, COLORREF color, int index) { + const BYTE r = GetRValue(color); + const BYTE g = GetGValue(color); + const BYTE b = GetBValue(color); + int sp_len = 20 - (int)wcslen(key); + wchar_t *str; + aswprintf(&str, L"%*.*s %3hhu, %3hhu, %3hhu ; #%02hhx%02hhx%02hhx ; ANSIColor[%2d]", + sp_len, sp_len, L" ", + r, g, b, r, g, b, index); + WritePrivateProfileStringW(section, key, str, file); + free(str); +} + +static void SaveColorANSINew(const wchar_t *section, const TAnsiColorSetting *color, const wchar_t *fname) +{ + wchar_t *str; + aswprintf(&str, L"%d", color->change); + WritePrivateProfileStringW(section, L"ANSIColor", str, fname); + free(str); + + for (int i = 0; i < _countof(ansi_list); i++) { + const int index = ansi_list[i].index; + const wchar_t *key = ansi_list[i].key; + SaveColorOneANSI(section, key, fname, color->color[index], index); + } +} + +/** + * \x83J\x83\x89\x81[\x83e\x81[\x83}\x82̕ۑ\xB6 + */ +void ThemeSaveColorOld(TColorTheme *color_theme, const wchar_t *fn) +{ WritePrivateProfileStringAFileW("Color Theme", "Theme", "teraterm theme editor", fn); BGSaveColorOne(&(color_theme->vt), "VTColor", fn); @@ -172,10 +269,26 @@ BGSaveColorOne(&(color_theme->blink), "BlinkColor", fn); BGSaveColorOne(&(color_theme->reverse), "ReverseColor", fn); BGSaveColorOne(&(color_theme->url), "URLColor", fn); + BGSaveColorOne(&(color_theme->underline), "VTUnderlineColor", fn); BGSaveColorANSI(&(color_theme->ansicolor), fn); } +void ThemeSaveColor(TColorTheme *color_theme, const wchar_t *fn) +{ + const wchar_t *section = L"Color Theme"; + WritePrivateProfileStringW(section, L"Theme", color_theme->name, fn); + + BGSaveColorOne(&(color_theme->vt), "VTColor", fn); + BGSaveColorOne(&(color_theme->bold), "BoldColor", fn); + BGSaveColorOne(&(color_theme->blink), "BlinkColor", fn); + BGSaveColorOne(&(color_theme->reverse), "ReverseColor", fn); + BGSaveColorOne(&(color_theme->url), "URLColor", fn); + BGSaveColorOne(&(color_theme->underline), "VTUnderlineColor", fn); + + SaveColorANSINew(section, &(color_theme->ansicolor), fn); +} + void WriteInt3(const char *Sect, const char *Key, const wchar_t *FName, int i1, int i2, int i3) { @@ -350,9 +463,9 @@ // ANSIColor16\x82́A\x96\xBE\x82邢/\x88Â\xA2\x83O\x83\x8B\x81[\x83v\x82\xAA\x93\xFC\x82\xEA\x91ւ\xED\x82\xC1\x82Ă\xA2\x82\xE9 const static int index256[] = { 0, + 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, - 8, - 1, 2, 3, 4, 5, 6, 7 }; GetPrivateProfileStringAFileW("Color Theme", "ANSIColor", "0", Buff, sizeof(Buff), fn); @@ -361,7 +474,7 @@ color->change = c; GetNthNum(Buff, 2, &c); - color->enable = c; + //color->enable = c; for (c=0; c<16; c++) { int idx = index256[c]; @@ -396,16 +509,18 @@ GetNthNum(Buff, 8, &b); color->bg = RGB(r, g, b); } - - return; } -/* - * \x83J\x83\x89\x81[\x83e\x81[\x83}ini\x83t\x83@\x83C\x83\x8B\x82\xF0\x83\x8D\x81[\x83h\x82\xB7\x82\xE9 +/** + * \x83J\x83\x89\x81[\x83e\x81[\x83}\x83v\x83\x89\x83O\x83C\x83\x93\x94\xC5 ini \x83t\x83@\x83C\x83\x8B\x93ǂݍ\x9E\x82\xDD */ -void ThemeLoadColor(const wchar_t *fn, TColorTheme *color_theme) +static void LoadColorPlugin(const wchar_t *fn, TColorTheme *color_theme) { - GetPrivateProfileStringAFileW("Color Theme", "Theme", "", color_theme->name, _countof(color_theme->name), fn); + const wchar_t *section = L"Color Theme"; + wchar_t *name; + hGetPrivateProfileStringW(section, L"Theme", NULL, fn, &name); + wcscpy_s(color_theme->name, _countof(color_theme->name), name); + free(name); ReadColorSetting(&(color_theme->vt), "VTColor", fn); ReadColorSetting(&(color_theme->bold), "BoldColor", fn); @@ -416,144 +531,108 @@ ReadANSIColorSetting(&(color_theme->ansicolor), fn); } -#if 0 -#define SECTION "Color Theme" - -static void ReadANSIColorSetting(TAnsiColorSetting *color, const wchar_t *fn) +/** + * \x83J\x83\x89\x81[\x83e\x81[\x83}\x83t\x83@\x83C\x83\x8B\x93ǂݍ\x9E\x82\xDD,1\x83A\x83g\x83\x8A\x83r\x83\x85\x81[\x83g\x95\xAA + */ +static void LoadColorAttr(const wchar_t *section, const wchar_t *key, const wchar_t *file, TColorSetting *attr) { - char Buff[512]; - int c, r, g, b; + wchar_t *str; + DWORD e = hGetPrivateProfileStringW(section, key, NULL, file, &str); + if (e != 0 || *str == 0) { + free(str); + return; + } - GetPrivateProfileStringAFileW(SECTION, "ANSIColor", "0", Buff, sizeof(Buff), fn); + BOOL change = FALSE; + BOOL enable = FALSE; + int fields; - GetNthNum(Buff, 1, &c); - color->change = c; + DWORD fore_rgb; + DWORD back_rgb; + fields = swscanf_s(str, L"%d, %d, #%06x, #%06x", &change, &enable, &fore_rgb, &back_rgb); + if (fields == 4) { + free(str); + attr->change = change; + attr->enable = enable; + attr->fg = RGB((fore_rgb & 0xff0000) >> 16, (fore_rgb & 0x00ff00) >> 8, (fore_rgb & 0x0000ff)); + attr->bg = RGB((back_rgb & 0xff0000) >> 16, (back_rgb & 0x00ff00) >> 8, (back_rgb & 0x0000ff)); + return; + } - GetNthNum(Buff, 2, &c); - color->enable = c; - - for (c=0; c<16; c++) { - GetNthNum(Buff, c * 3 + 3, &r); - GetNthNum(Buff, c * 3 + 4, &g); - GetNthNum(Buff, c * 3 + 5, &b); - color->color[c] = RGB(r, g, b); + BYTE fg_red, fg_green, fg_blue; + BYTE bg_red, bg_green, bg_blue; + fields = swscanf_s(str, L"%d, %d, %hhu, %hhu, %hhu, %hhu, %hhu, %hhu", &change, &enable, &fg_red, &fg_green, + &fg_blue, &bg_red, &bg_green, &bg_blue); + if (fields == 8) { + free(str); + attr->change = change; + attr->enable = enable; + attr->fg = RGB(fg_red, fg_green, fg_blue); + attr->bg = RGB(bg_red, bg_green, bg_blue); + return; } - - return; + fields = swscanf_s(str, L"%d, %d", &change, &enable); + if (fields == 2) { + free(str); + attr->change = change; + attr->enable = FALSE; // \x90F\x8Ew\x92肪\x93ǂ߂Ȃ\xA9\x82\xC1\x82\xBD\x82̂ŁA\x95\xB6\x8E\x9A\x91\xAE\x90\xAB\x82̓Ǝ\xA9\x90F\x82͖\xB3\x8C\xF8 + return; + } + fields = swscanf_s(str, L"%d", &change); + free(str); + if (fields == 1) { + attr->change = FALSE; // \x90F\x95ύX\x82͂\xB5\x82Ȃ\xA2 + return; + } } -static void ReadColorSetting(TColorSetting *color, char *ent, const wchar_t *fn) +/* + * color theme\x97p\x83\x8D\x81[\x83h + */ +static void ThemeLoadColorDraft(const wchar_t *file, TColorTheme *theme) { - char Key[32], Buff[512]; - int c, r, g, b; + const wchar_t *section = L"Color Theme"; - _snprintf_s(Key, sizeof(Key), _TRUNCATE, "%s", ent); - GetPrivateProfileStringAFileW(SECTION, Key, "0", Buff, sizeof(Buff), fn); + wchar_t *name; + hGetPrivateProfileStringW(section, L"Theme", NULL, file, &name); + wcscpy_s(theme->name, _countof(theme->name), name); + free(name); - GetNthNum(Buff, 1, &c); - color->change = c; + struct { + const wchar_t *key; + TColorSetting *color; + } attr_list[] = { + L"VTColor", &(theme->vt), + L"BoldColor", &(theme->bold), + L"BlinkColor", &(theme->blink), + L"ReverseColor", &(theme->reverse), + L"URLColor", &(theme->url), + L"VTUnderlineColor", &(theme->underline), + }; + for (int i = 0; i < _countof(attr_list); i++) { + LoadColorAttr(section, attr_list[i].key, file, attr_list[i].color); + } - GetNthNum(Buff, 2, &c); - color->enable = c; - - GetNthNum(Buff, 3, &r); - GetNthNum(Buff, 4, &g); - GetNthNum(Buff, 5, &b); - color->fg = RGB(r, g, b); - - GetNthNum(Buff, 6, &r); - GetNthNum(Buff, 7, &g); - GetNthNum(Buff, 8, &b); - color->bg = RGB(r, g, b); + theme->ansicolor.change = (BOOL)GetPrivateProfileIntW(section, L"ANSIColor", 1, file); + for (int i = 0; i < _countof(ansi_list); i++) { + const int index = ansi_list[i].index; + const wchar_t *key = ansi_list[i].key; + theme->ansicolor.color[index] = LoadColorOneANSI(section, key, file, theme->ansicolor.color[index]); + } } -static void ReadColorSetting(TColorSetting *color, char *ent, const wchar_t *fn) -{ - char Key[32], Buff[512]; - int c, r, g, b; - - _snprintf_s(Key, sizeof(Key), _TRUNCATE, "%s", ent); - GetPrivateProfileStringAFileW(SECTION, Key, "0", Buff, sizeof(Buff), fn); - - GetNthNum(Buff, 1, &c); - color->change = c; - - GetNthNum(Buff, 2, &c); - color->enable = c; - - GetNthNum(Buff, 3, &r); - GetNthNum(Buff, 4, &g); - GetNthNum(Buff, 5, &b); - color->fg = RGB(r, g, b); - - GetNthNum(Buff, 6, &r); - GetNthNum(Buff, 7, &g); - GetNthNum(Buff, 8, &b); - color->bg = RGB(r, g, b); -} - -static void ReadColorTheme(const wchar_t *fn, TColorTheme *data) -{ - memset(data, 0, sizeof(*data)); - - GetPrivateProfileStringAFileW(SECTION, "Theme", "", data->name, - sizeof(data->name), fn); - if (data->name[0] == '\0') - return; - - ReadColorSetting(&data->vt, "VTColor", fn); - ReadColorSetting(&data->bold, "BoldColor", fn); - ReadColorSetting(&data->blink, "BlinkColor", fn); - ReadColorSetting(&data->reverse, "ReverseColor", fn); - ReadColorSetting(&data->url, "URLColor", fn); - - ReadANSIColorSetting(&data->ansicolor, fn); -} - -#endif - -#if 0 -static void WriteInt(PCHAR Sect, PCHAR Key, const wchar_t *FName, int i) -{ - char Temp[15]; - _snprintf_s(Temp, sizeof(Temp), _TRUNCATE, "%d", i); - WritePrivateProfileStringAFileW(Sect, Key, Temp, FName); -} -#endif - -/** - * \x83e\x81[\x83}\x83t\x83@\x83C\x83\x8B\x82̏\x91\x82\xAB\x8D\x9E\x82\xDD +/* + * \x83J\x83\x89\x81[\x83e\x81[\x83}ini\x83t\x83@\x83C\x83\x8B\x82\xF0\x83\x8D\x81[\x83h\x82\xB7\x82\xE9 */ -#if 0 -void BGWriteThemeFile(const wchar_t *theme_file) +void ThemeLoadColor(const wchar_t *fn, TColorTheme *color_theme) { - WritePrivateProfileStringAFileW(BG_SECTION, BG_DESTFILE, BGDest.file, theme_file); - BGSrc1.alpha = GetPrivateProfileIntAFileW(BG_SECTION, "BGSrc1Alpha", BGSrc1.alpha, theme_file); - WriteInt(BG_SECTION, BG_THEME_IMAGE_BRIGHTNESS1, theme_file, BGSrc1.alpha); - WriteInt(BG_SECTION, BG_THEME_IMAGE_BRIGHTNESS2, theme_file, BGSrc2.alpha); + ThemeGetColorDefault(color_theme); + LoadColorPlugin(fn, color_theme); + ThemeLoadColorOld(fn, color_theme); + ThemeLoadColorDraft(fn, color_theme); } -#endif /** - * \x83e\x81[\x83}\x83t\x83@\x83C\x83\x8B\x82̏\x91\x82\xAB\x8D\x9E\x82\xDD - */ -#if 0 -static void BGWriteIniFile(const wchar_t *file) -{ - WritePrivateProfileStringAFileW(BG_SECTION, BG_DESTFILE, BGDest.file, file); - WritePrivateProfileStringAFileW(BG_SECTION, "BGDestType", - BGDest.type == BG_PICTURE ? "picture" : "color", file); - WriteCOLORREF(BG_SECTION, "BGDestColor", file, BGDest.color); - WritePrivateProfileStringAFileW(BG_SECTION, "BGDestPattern", GetBGPatternStr(BGDest.pattern), file); - - WritePrivateProfileIntAFileW(BG_SECTION, "BGSrc1Alpha", BGSrc1.alpha, file); - - WritePrivateProfileIntAFileW(BG_SECTION, "BGSrc2Alpha", BGSrc2.alpha, file); - WriteCOLORREF(BG_SECTION, "BGSrc2Color", file, BGSrc2.color); -} -#endif - -/** * \x83e\x81[\x83}\x83t\x83@\x83C\x83\x8B\x82\xF0\x93ǂݍ\x9E\x82\xDE * * @param file \x83t\x83@\x83C\x83\x8B\x96\xBC Modified: trunk/teraterm/teraterm/vtdisp.c =================================================================== --- trunk/teraterm/teraterm/vtdisp.c 2022-10-07 15:43:29 UTC (rev 10302) +++ trunk/teraterm/teraterm/vtdisp.c 2022-10-10 04:48:24 UTC (rev 10303) @@ -3583,18 +3583,34 @@ { int i; + wcscpy_s(data->name, _countof(data->name), L"Tera Term color theme"); + data->vt.change = TRUE; + data->vt.enable = TRUE; data->vt.fg = BGVTColor[0]; data->vt.bg = BGVTColor[1]; + data->bold.change = TRUE; + data->bold.enable = TRUE; data->bold.fg = BGVTBoldColor[0]; data->bold.bg = BGVTBoldColor[1]; + data->underline.change = TRUE; + data->underline.enable = TRUE; data->underline.fg = BGVTUnderlineColor[0]; data->underline.bg = BGVTUnderlineColor[1]; + data->blink.change = TRUE; + data->blink.enable = TRUE; data->blink.fg = BGVTBlinkColor[0]; data->blink.bg = BGVTBlinkColor[1]; + data->reverse.change = TRUE; + data->reverse.enable = TRUE; data->reverse.fg = BGVTReverseColor[0]; data->reverse.bg = BGVTReverseColor[1]; + data->url.change = TRUE; + data->url.enable = TRUE; data->url.fg = BGURLColor[0]; data->url.bg = BGURLColor[1]; + + // ANSI color + data->ansicolor.change = TRUE; for (i = 0; i < 16; i++) { data->ansicolor.color[i] = ANSIColor[i]; } Modified: trunk/teraterm/teraterm/vtdisp.h =================================================================== --- trunk/teraterm/teraterm/vtdisp.h 2022-10-07 15:43:29 UTC (rev 10302) +++ trunk/teraterm/teraterm/vtdisp.h 2022-10-10 04:48:24 UTC (rev 10303) @@ -150,6 +150,7 @@ extern BOOL IMEstat; extern BOOL IMECompositionState; +// for DispHScroll(), DispVScroll() #define SCROLL_BOTTOM 1 #define SCROLL_LINEDOWN 2 #define SCROLL_LINEUP 3 @@ -158,6 +159,7 @@ #define SCROLL_POS 6 #define SCROLL_TOP 7 +// for DispShowWindow() #define WINDOW_MINIMIZE 1 #define WINDOW_MAXIMIZE 2 #define WINDOW_RESTORE 3 @@ -166,8 +168,6 @@ #define WINDOW_REFRESH 6 #define WINDOW_TOGGLE_MAXIMIZE 7 -#include "theme.h" - #ifdef __cplusplus } #endif