現在公開している Ver 0.31 で2点不具合を発見したのでその修正版を近いうちにリリースする予定です。修正内容は以下の2つになります。
- キーが押下されている状態でちーたんタッチボードを終了しようとするとエラーが表示される現象
- "Shift や Ctrl キーを押してトグル状態にしているときに反対側の Shift や Ctrl を押してトグルを解除しようとすると意図しない挙動になる現象
ちーたんタッチボード Ver 0.31 を公開しました。主にバグ修正が目的となっていますが、細かい点の改修・修正を行っています。
主な修正点は以下の通りです。
などです。
その他更新履歴、ダウンロードは以下のページを参照してください。
]]>ちーたんタッチボード Ver 0.30 を公開しました。当初はちょっとしたプログラム改修のみを行う予定だったのですが、なんだかんだ手を入れていったらやや大きめの改修になってしまいました。なので Ver 0.30 です。
代表的な改修点は以下のものになります。
ようやくというかやっとできました。初めてちーたんタッチボードを作ってから約8か月になります。
以前の投稿でも書いたのですが当初は XAML ファイルからボードの定義を作成するように考えていました。しかし、ちーたんタッチボード用に拡張パラメータを設定しようとすると XAML だけでは限界があったので、いろいろ悩んだ結果 Excel ツールとして作成することにしました。
Excel なら図形も使えるしセルも使えるしマクロも使えるしフォームも使えると割となんでもできます。今回はレイアウトを図形で作成し、パラメータはセルにテーブル形式で入力するようにしました。そしてそれらの入力情報からマクロでボードコンテナ定義ファイル(JSON ファイル)として出力するようにしました。
ツールはダウンロードページから、使い方は別途専用ページを作成しましたのでそちらをご覧ください。
Excel 最強。
割と要望が多かった前回のボードの位置を記憶する機能を追加しました。これはボードを切り替えた時やちーたんタッチボードを起動したときなどに適用されます。
なぜ今まで実装していなかったのかというと、ボード切り替えのタイミングでボードが初期位置にないとボード切り替えボタンが毎回異なる場所に配置されてしまうため、連続でボードを切り替える場合に結構面倒だと思ったからです。
今回その対策については特に行っておりませんが、ボードの前回の位置を記憶するかどうかは設定画面で切り替え可能です。
Shift や Ctrl の押下動作は今まで独自に考えて実装していました。普通に使う分には特に問題ないのですが、例えばエクスプローラー上でファイルを複数選択する際に Shift キーを押しながらマウス操作を行っても複数選択することはできませんでした。これは Windows 標準の動作と異なる処理を行っていたからです。
Ver 0.30 では限りなく Windows 標準のタッチキーボードと同じ動作になるように実装したので、Shift キーとマウスパッドを同時に配置してエクスプローラーでファイルを複数するような動作ができるようになりました。もちろん Ctrl や Alt も同様です。また他のアプリケーションでも同じ動作ができるようになっています。
用は今までは内側(ちーたんタッチボード)だけしか考えていなかったのを、外部アプリケーションも考えて改修してみたということです。
実はまだ Windows 標準のタッチキーボードと動作が違うところがあるのですが、あまり気にならないところなのでおいおい直していきたいと思います。
修飾キー以外、例えばペイントソフト用にスペースキーをトグルにしたとき、トグルを解除するのを忘れたまま他のウィンドウをアクティブにしてしまうと、そのままスペースが連続して入力されてしまうという現象が前のバージョンまでありました。
Ver 0.30 ではウィンドウが切り替わったことを検知してトグルキーを解除する機能を追加しました。この設定は標準では無効になっていますが、ボードの設定で有効にすることができます。(文字キーをトグルにすることはほとんどないため)
配布しているペイント用のボードにはこの設定を適用しています。
すみません、いつの間にかエラーになっていました。どうやら XP と WPF のアイコンの問題だったのでうまく回避するようにしました。
詳しくは前に投稿した記事をご覧ください。
他にも変更点はありますが詳しくは更新履歴のページを参照してください。
あと、ホームページの更新履歴のほうで「ちーたんタッチボードのページを40か国語に対応しました」って書いてしまったんですが実はまだ「概要」と「ダウンロード」ページしかできてません orz 。時間があれば追記していきたいと思います。
]]>現在公開しているツール「ちーたんタッチボード」では、色情報を 0.0 ~ 1.0 の小数で持っているのですが、プログラムで ARGB として設定する際に 0 ~ 255 形式に変換する必要がありました。しかし、小数↔整数 の変換には誤差がつきものなのでどうにかならないのかなと思っていたのですが、WPF で使用されている System.Windows.Media.Color に「ScA」「ScR」のようなプロパティがあるのを見つけました。
MSDN で調べてみると渡す値は 0 ~ 1 と書いてあったので「0 ~ 255 の代わりに 0.0 ~ 1.0 の線形補間で色情報を渡せるんだ」と思い込んでしまったのが悪夢の始まりでした。
実は現在公開しているちーたんタッチボード Ver 0.23 では背景や文字の色設定を行うと設定するたびに微妙に色が変わったりする不具合が存在しています。もうお分かりかと思いますが、上記の誤解により発生している不具合です。(次に公開する Ver 0.30 では治ってます^^;)
当時原因がよくわからなくてほかのライブラリが原因なのではないかとか思ったりしていたのですが、最終的に Color 構造体に秘密があるのではないかと思い、値設定後の各パラメータのダンプを取ってみました。以下は ScX プロパティに 0.01 ずつ設定したものです。
A | R | G | B | ScA | ScR | ScG | ScB |
---|---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0.00 |
3 | 25 | 25 | 25 | 0.01 | 0.01 | 0.01 | 0.01 |
5 | 39 | 39 | 39 | 0.02 | 0.02 | 0.02 | 0.02 |
8 | 48 | 48 | 48 | 0.03 | 0.03 | 0.03 | 0.03 |
10 | 56 | 56 | 56 | 0.04 | 0.04 | 0.04 | 0.04 |
13 | 63 | 63 | 63 | 0.05 | 0.05 | 0.05 | 0.05 |
15 | 69 | 69 | 69 | 0.06 | 0.06 | 0.06 | 0.06 |
18 | 75 | 75 | 75 | 0.07 | 0.07 | 0.07 | 0.07 |
20 | 80 | 80 | 80 | 0.08 | 0.08 | 0.08 | 0.08 |
23 | 85 | 85 | 85 | 0.09 | 0.09 | 0.09 | 0.09 |
26 | 89 | 89 | 89 | 0.10 | 0.10 | 0.10 | 0.10 |
28 | 93 | 93 | 93 | 0.11 | 0.11 | 0.11 | 0.11 |
31 | 97 | 97 | 97 | 0.12 | 0.12 | 0.12 | 0.12 |
33 | 101 | 101 | 101 | 0.13 | 0.13 | 0.13 | 0.13 |
36 | 105 | 105 | 105 | 0.14 | 0.14 | 0.14 | 0.14 |
38 | 108 | 108 | 108 | 0.15 | 0.15 | 0.15 | 0.15 |
41 | 111 | 111 | 111 | 0.16 | 0.16 | 0.16 | 0.16 |
43 | 115 | 115 | 115 | 0.17 | 0.17 | 0.17 | 0.17 |
46 | 118 | 118 | 118 | 0.18 | 0.18 | 0.18 | 0.18 |
48 | 121 | 121 | 121 | 0.19 | 0.19 | 0.19 | 0.19 |
51 | 124 | 124 | 124 | 0.20 | 0.20 | 0.20 | 0.20 |
54 | 126 | 126 | 126 | 0.21 | 0.21 | 0.21 | 0.21 |
56 | 129 | 129 | 129 | 0.22 | 0.22 | 0.22 | 0.22 |
59 | 132 | 132 | 132 | 0.23 | 0.23 | 0.23 | 0.23 |
61 | 134 | 134 | 134 | 0.24 | 0.24 | 0.24 | 0.24 |
64 | 137 | 137 | 137 | 0.25 | 0.25 | 0.25 | 0.25 |
66 | 139 | 139 | 139 | 0.26 | 0.26 | 0.26 | 0.26 |
69 | 142 | 142 | 142 | 0.27 | 0.27 | 0.27 | 0.27 |
71 | 144 | 144 | 144 | 0.28 | 0.28 | 0.28 | 0.28 |
74 | 147 | 147 | 147 | 0.29 | 0.29 | 0.29 | 0.29 |
77 | 149 | 149 | 149 | 0.30 | 0.30 | 0.30 | 0.30 |
79 | 151 | 151 | 151 | 0.31 | 0.31 | 0.31 | 0.31 |
82 | 153 | 153 | 153 | 0.32 | 0.32 | 0.32 | 0.32 |
84 | 155 | 155 | 155 | 0.33 | 0.33 | 0.33 | 0.33 |
87 | 158 | 158 | 158 | 0.34 < /td> | 0.34 | 0.34 | 0.34 |
89 | 160 | 160 | 160 | 0.35 | 0.35 | 0.35 | 0.35 |
92 | 162 | 162 | 162 | 0.36 | 0.36 | 0.36 | 0.36 |
94 | 164 | 164 | 164 | 0.37 | 0.37 | 0.37 | 0.37 |
97 | 166 | 166 | 166 | 0.38 | 0.38 | 0.38 | 0.38 |
99 | 168 | 168 | 168 | 0.39 | 0.39 | 0.39 | 0.39 |
102 | 170 | 170 | 170 | 0.40 | 0.40 | 0.40 | 0.40 |
105 | 172 | 172 | 172 | 0.41 | 0.41 | 0.41 | 0.41 |
107 | 173 | 173 | 173 | 0.42 | 0.42 | 0.42 | 0.42 |
110 | 175 | 175 | 175 | 0.43 | 0.43 | 0.43 | 0.43 |
112 | 177 | 177 | 177 | 0.44 | 0.44 | 0.44 | 0.44 |
115 | 179 | 179 | 179 | 0.45 | 0.45 | 0.45 | 0.45 |
117 | 181 | 181 | 181 | 0.46 | 0.46 | 0.46 | 0.46 |
120 | 182 | 182 | 182 | 0.47 | 0.47 | 0.47 | 0.47 |
122 | 184 | 184 | 184 | 0.48 | 0.48 | 0.48 | 0.48 |
125 | 186 | 186 | 186 | 0.49 | 0.49 | 0.49 | 0.49 |
128 | 188 | 188 | 188 | 0.50 | 0.50 | 0.50 | 0.50 |
130 | 189 | 189 | 189 | 0.51 | 0.51 | 0.51 | 0.51 |
133 | 191 | 191 | 191 | 0.52 | 0.52 | 0.52 | 0.52 |
135 | 192 | 192 | 192 | 0.53 | 0.53 | 0.53 | 0.53 |
138 | 194 | 194 | 194 | 0.54 | 0.54 | 0.54 | 0.54 |
140 | 196 | 196 | 196 | 0.55 | 0.55 | 0.55 | 0.55 |
143 | 197 | 197 | 197 | 0.56 | 0.56 | 0.56 | 0.56 |
145 | 199 | 199 | 199 | 0.57 | 0.57 | 0.57 | 0.57 |
148 | 200 | 200 | 200 | 0.58 | 0.58 | 0.58 | 0.58 |
150 | 202 | 202 | 202 | 0.59 | 0.59 | 0.59 | 0.59 |
153 | 203 | 203 | 203 | 0.60 | 0.60 | 0.60 | 0.60 |
156 | 205 | 205 | 205 | 0.61 | 0.61 | 0.61 | 0.61 |
158 | 206 | 206 | 206 | 0.62 | 0.62 | 0.62 | 0.62 |
161 | 208 | 208 | 208 | 0.63 | 0.63 | 0.63 | 0.63 |
163 | 209 | 209 | 209 | 0.64 | 0.64 | 0.64 | 0.64 |
166 | 211 | 211 | 211 | 0.65 | 0.65 | 0.65 | 0.65 |
168 | 212 | 212 | 212 | 0.66 | 0.66 | 0.66 | 0.66 |
171 | 214 | 214 | 214 | 0.67 | 0.67 | 0.67 | 0.67 |
173 | 215 | 215 | 215 | 0.68 | 0.68 | 0.68 | 0.68 |
176 | 216 | 216 | 216 | 0.69 | 0.69 | 0.69 | 0.69 |
179 | 218 | 218 | 218 | 0.70 | 0.70 | 0.70 | 0.70 |
181 | 219 | 219 | 219 | 0.71 | 0.71 | 0.71 | 0.71 |
184 | 221 | 221 | 221 | 0.72 | 0.72 | 0.72 | 0.72 |
186 | 222 | 222 | 222 | 0.73 | 0.73 | 0.73 | 0.73 |
189 | 223 | 223 | 223 | 0.74 | 0.74 | 0.74 | 0.74 |
191 | 225 | 225 | 225 | 0.75 | 0.75 | 0.75 | 0.75 |
194 | 226 | 226 | 226 | 0.76 | 0.76 | 0.76 | 0.76 |
196 | 227 | 227 | 227 | 0.77 | 0.77 | 0.77 | 0.77 |
199 | 229 | 229 | 229 | 0.78 | 0.78 | 0.78 | 0.78 |
201 | 230 | 230 | 230 | 0.79 | 0.79 | 0.79 | 0.79 |
204 | 231 | 231 | 231 | 0.80 | 0.80 | 0.80 | 0.80 |
207 | 232 | 232 | 232 | 0.81 | 0.81 | 0.81 | 0.81 |
209 | 234 | 234 | 234 | 0.82 | 0.82 | 0.82 | 0.82 |
212 | 235 | 235 | 235 | 0.83 | 0.83 | 0.83 | 0.83 |
214 | 236 | 236 | 236 | 0.84 | 0.84 | 0.84 | 0.84 |
217 | 237 | 237 | 237 | 0.85 | 0.85 | 0.85 | 0.85 |
219 | 239 | 239 | 239 | 0.86 | 0.86 | 0.86 | 0.86 |
222 | 240 | 240 | 240 | 0.87 | 0.87 | 0.87 | 0.87 |
224 | 241 | 241 | 241 | 0.88 | 0.88 | 0.88 | 0.88 |
227 | 242 | 242 | 242 | 0.89 | 0.89 | 0.89 | 0.89 |
230 | 243 | 243 | 243 | 0.90 | 0.90 | 0.90 | 0.90 |
232 | 245 | 245 | 245 | 0.91 | 0.91 | 0.91 | 0.91 |
235 | 246 | 246 | 246 | 0.92 | 0.92 | 0.92 | 0.92 |
237 | 247 | 247 | 247 | 0.93 | 0.93 | 0.93 | 0.93 |
240 | 248 | 248 | 248 | 0.94 | 0.94 | 0.94 | 0.94 |
242 | 249 | 249 | 249 | 0.95 | 0.95 | 0.95 | 0.95 |
245 | 250 | 250 | 250 | 0.96 | 0.96 | 0.96 | 0.96 |
247 | 252 | 252 | 252 | 0.97 | 0.97 | 0.97 | 0.97 |
250 | 253 | 253 | 253 | 0.98 | 0.98 | 0.98 | 0.98 |
252 | 254 | 254 | 254 | 0.99 | 0.99 | 0.99 | 0.99 |
255 | 255 | 255 | 255 | 1.00 | 1.00 | 1.00 | 1.00 |
見事に線形ではありませんでした。
よくよく調べてみると ARGB のほうは sRGB という規格、ScA ScR ScG ScB のほうは scRGB という規格らしいです。scRGB については以下のサイトなどを参考にしてください。簡単にまとめると、sRGB(8bit) では表現できなかった色を 12bit や 16bit などに拡張してより多くの色情報を表現できるようにしたものです。
しかし、いろいろ調べてみても sRGB と scRGB の変換方法がよくわからなかったのでコードベースで情報がないか調べてみたところ以下のサイトがありました。
確かにこのコードに当てはめると Color 構造体で出力された結果と一致しました。ですが、この変換処理と scRGB について書かれている公式との関連性がよくわかりませんでした。Microsoft が独自に定義したものかもしれませんが、それについても文面を見つけることができませんでした。
まあとりあえず現状は 0.0~1.0 と 0~255 は単純に線形変換させて対応することにし、scRGB については今回の記事で参考になったという形にとどめておきたいと思います。なにか詳しい情報があればコメントいただければと思います。
]]>なかなか手が付かずに更新できていませんでしたが、小規模なバージョンアップを行いました。内容は
です。高負荷状態のときにマウスカーソルが飛ぶ現象は自分でも割とあったので、マウスパッド使っている方は適用してみるといいかもしれません。
今回は小規模なものなのでバージョンは +0.01 にしました。もう少し大きめな機能拡張とかも考えているのですが、実装時期はまだ未定です。実装したらたぶん 0.30 ぐらいにするんじゃないかと思っています。
公開した後に気づいたのですが、既知の不具合として、設定画面で色設定あたりを変更するたびに微妙に色が変わってしまっているような気がします。そのせいでダイアログを閉じるたびに変更破棄確認ダイアログが出てしまっているようです。これについては次のバージョンで治したいと思います。(Ver 0.22 でもでてたっぽいです・・・。)
]]>0.01 だけ上げたマイナーバージョンアップです。不具合の修正や内部の仕様を変更したものなので見た目や操作などで大きく変わったところはありません。
ちーたんタッチボード本体についてはボードコンテナ定義ファイルの仕様変更に対応した修正がほとんどなので機能的には Ver 0.21 とほとんど変わっていません。「CapsLock」の送信キーを正しいものに変えたりとか、マウスパッドでマウスカーソルのキーエリアをタップしたときの挙動などが変わっています。
付属のボードコンテナ定義ファイルとダウンロードできるボードコンテナ定義ファイルのレイアウトや画像などを更新しました。こちらもそこまで変わっていませんがキーを増やしたり位置を変えたりしています。また、すべてのボードコンテナ定義ファイルにおいてちーたんタッチボード Ver 0.22 の仕様に合わせて内部のパラメータを修正しました。
一応過去のバージョンの定義ファイルも読み込めるようにはしていますが、このまま対応していくかどうかは、今後定義がどのように変わっていくかに影響されるかもしれません。
]]>