今のところ画面上でテーマを確認・編集する方法はありません。
json のファイル形式、カラーコード(#FFFFFF等)の知識が前提となります。
画面上からのテーマ編集機能が欲しい方は作者までご相談ください。優先度を上げて対応します。
初期搭載したいテーマができましたらご連絡ください。良い感じだったら採用します。
ただ初期搭載テーマに移植するのがかなり面倒くさいので PR 直接提出も歓迎します。
テーマは json 形式で記述します。
アプリは起動時に実行ファイル(KyoshinEewViewer.exe)と同じフォルダ上の Themes/IntensityThemes フォルダ内の json ファイルを読み込もうとします。
ウィンドウテーマは Themes から、震度アイコンテーマは IntensityThemes から読み込まれます。
このようにファイルを配置するだけですので、良い感じのテーマができたら配布してみてもいいかもしれません。
ただし将来のバージョンの互換を保つ約束はできないので動作確認済みのバージョンも追記しておくと良いでしょう。
#RRGGBB もしくは #AARRGGBB で指定してください。
透明度は FF は不透明で、 00 が透明です。
以下の形式です。
| プロパティ名 | 型 | 解説 |
|---|---|---|
| Name | string | テーマ名 設定ファイル上でも使用されます |
| TitleBackgroundColor | Color | タイトルバーの色 左ペインの配色(Windows のみタイトルバーの色も変化します) |
| IsDark | bool | ダークテーマか UIの基本色が変化します |
| OverseasLandColor | Color | 地図配色 海外地形(ボーダーは設定不可) |
| LandColor | Color | 地図配色 地形 |
| LandStrokeThickness | double | 地図配色 海岸線の太さ 0 にすることで軽量化できる |
| PrefStrokeColor | Color | 地図配色 都道府県境界線 |
| PrefStrokeThickness | double | 地図配色 都道府県境界線の太さ |
| AreaStrokeColor | Color | 地図配色 地域境界線 |
| AreaStrokeThickness | double | 地図配色 地域境界線の太さ |
| MainBackgroundColor | Color | メイン背景色 |
| MainForegroundColor | Color | メイン文字色 |
| SubForegroundColor | Color | サブ文字色(補足等) |
| EmphasisForegroundColor | Color | 強調文字(現状では強震モニタリプレイ時の時刻色) |
| DockBackgroundColor | Color | ドック(要素ウィンドウ)背景色 |
| DockTitleBackgroundColor | Color | ドック(要素ウィンドウ)タイトル部分背景色 |
| DockWarningBackgroundColor | Color | ドックエラー・警告配色背景色 |
| DockWarningTitleBackgroundColor | Color | ドックエラー・警告配色タイトル部分背景色 |
| WarningForegroundColor | Color | エラー・警告文字色 |
| WarningSubForegroundColor | Color | エラー・警告サブ文字色 |
| WarningBackgroundColor | Color | エラー・警告背景色 |
| TsunamiForecastColor | Color | 津波予報色 |
| TsunamiForecastForegroundColor | Color | 津波予報文字色 |
| TsunamiAdvisoryColor | Color | 津波注意報色 |
| TsunamiAdvisoryForegroundColor | Color | 津波注意報文字色 |
| TsunamiWarningColor | Color | 津波警報色 |
| TsunamiWarningForegroundColor | Color | 津波警報文字色 |
| TsunamiMajorWarningColor | Color | 津波大津波警報色 |
| TsunamiMajorWarningForegroundColor | Color | 津波大津波警報文字色 |
| EarthquakeHypocenterBorderColor | Color | 震央アイコンボーダー色(地震情報) |
| EarthquakeHypocenterColor | Color | 震央アイコン塗りつぶし色(地震情報) |
| EewForecastHypocenterBorderColor | Color | 震央アイコンボーダー色(緊急地震速報 予報) |
| EewForecastHypocenterColor | Color | 震央アイコン塗りつぶし色(緊急地震速報 予報) |
| EewWarningHypocenterBorderColor | Color | 震央アイコンボーダー色(緊急地震速報 警報) |
| EewWarningHypocenterColor | Color | 震央アイコン中央色(緊急地震速報 警報) |
| IsEewHypocenterBlinkAnimation | bool | 緊急地震速報震央アイコンの点滅アニメーションを有効にするか |
| EewForecastPWaveColor | Color | 緊急地震速報(予報)P波色 |
| EewForecastSWaveColor | Color | 緊急地震速報(予報)S波色 |
| IsEewForecastSWaveGradient | bool | 緊急地震速報(予報)のS波色をグラデーションにするか |
| EewWarningPWaveColor | Color | 緊急地震速報(警報)P波色 |
| EewWarningSWaveColor | Color | 緊急地震速報(警報)S波色 |
| IsEewWarningSWaveGradient | bool | 緊急地震速報(警報)のS波色をグラデーションにするか |
| AshfallLight | Color | 降灰予報における『少量の降灰』 |
| AshfallLightForeground | Color | 降灰予報における『少量の降灰』文字色 |
| AshfallModerate | Color | 降灰予報における『やや多量の降灰』 |
| AshfallModerateForeground | Color | 降灰予報における『やや多量の降灰』文字色 |
| AshfallHeavy | Color | 降灰予報における『多量の降灰』 |
| AshfallHeavyForeground | Color | 降灰予報における『多量の降灰』文字色 |
| SmallVolcanicBombFall | Color | 降灰予報における『小さな噴石の落下』 |
| SmallVolcanicBombFallForeground | Color | 降灰予報における『小さな噴石の落下』文字色 |
| プロパティ名 | 型 | 解説 |
|---|---|---|
| Name | string | テーマ名 設定ファイル上でも使用されます |
| IntensityColors | object | 震度階級(後述) |
| LpgmIntensityColors | object | 長周期地震動階級(後述) |
| BorderWidthMultiply | double | 縁の太さの割合 (参考値 Standard/Quarog:0.125 JMA/Vivid:0.05) |
震度をキーに Foreground/Background/Border を設定します。
実装例を参考にしてください。
Int0~Int4/Int7Int5Upper/Int5LowerInt6Upper/Int6Lower
震度をキーに Foreground/Background/Border を設定します。
実装例を参考にしてください。
LpgmInt0~LpgmInt4UnknownError
Kiwi Monitor カラースキーム 第3版 を実装してみた例です(縁の色は適当)。
{
"Name": "KiwiV3",
"IntensityColors": {
"Unknown": {
"Foreground": "#E6000000",
"Background": "#808080",
"Border": "#999999"
},
"Error": {
"Foreground": "#b30f20",
"Background": "#ffff6c",
"Border": "#FFFF52"
},
"Int0": {
"Foreground": "#E6FFFFFF",
"Background": "#808080",
"Border": "#999999"
},
"Int1": {
"Foreground": "#E6FFFFFF",
"Background": "#3C5A82",
"Border": "#29405E"
},
"Int2": {
"Foreground": "#E6FFFFFF",
"Background": "#1E82E6",
"Border": "#135EA9"
},
"Int3": {
"Foreground": "#E6000000",
"Background": "#78E6DC",
"Border": "#56A9A1"
},
"Int4": {
"Foreground": "#E6000000",
"Background": "#FFFF96",
"Border": "#BCBC6D"
},
"Int5Lower": {
"Foreground": "#E6000000",
"Background": "#FFD200",
"Border": "#BC9A00"
},
"Int5Upper": {
"Foreground": "#E6000000",
"Background": "#FF9600",
"Border": "#BC6D00"
},
"Int6Lower": {
"Foreground": "#E6FFFFFF",
"Background": "#F03200",
"Border": "#B02200"
},
"Int6Upper": {
"Foreground": "#E6FFFFFF",
"Background": "#BE0000",
"Border": "#8B0000"
},
"Int7": {
"Foreground": "#E6FFFFFF",
"Background": "#8C0028",
"Border": "#65001A"
}
},
"LpgmIntensityColors": {
"Unknown": {
"Foreground": "#000000",
"Background": "#808080",
"Border": "#999999"
},
"Error": {
"Foreground": "#b30f20",
"Background": "#ffff6c",
"Border": "#FFFF52"
},
"LpgmInt0": {
"Foreground": "#E6FFFFFF",
"Background": "#808080",
"Border": "#999999"
},
"LpgmInt1": {
"Foreground": "#E6000000",
"Background": "#78E6DC",
"Border": "#56A9A1"
},
"LpgmInt2": {
"Foreground": "#E6000000",
"Background": "#FFD200",
"Border": "#BC9A00"
},
"LpgmInt3": {
"Foreground": "#E6FFFFFF",
"Background": "#F03200",
"Border": "#B02200"
},
"LpgmInt4": {
"Foreground": "#E6FFFFFF",
"Background": "#BE0000",
"Border": "#8B0000"
}
},
"BorderWidthMultiply": 0.125
}json フォーマットエラーなどで読み込めない場合テーマの一覧に表示されません。
カラーコードの書式エラーの場合デフォルトテーマの色が使用されます。
読み込まれていない場合はフォーマットが合っているかどうかを見直してみてください。
また、デフォルトのテーマと同じ名前に設定した場合はメニューからの反映はできますが再起動後に追加されたテーマではなくデフォルトの方のテーマが選択されることになります。