遅い→起動時

http://d.hatena.ne.jp/pmint/

プラグインを選択できるペイントツール プロトタイプ15

d:id:pmint:20080515:p1の続き。


Paletteの実装。2種類あるパレットのうち、ツールパレットのほう。
これで1つのTabletでBrushやStrokeModifierを選択できる。
どのプラグインを有効にするかをPaletteが持つUiで決められる。
レイヤーとログ再生はそのうちに。

ペイントツール プロトタイプ15。
WindowsApplication1.zip

起動はここからClickOnceで。ClickOnceIE系で。
WindowsApplication1

操作

左ドラッグ(右でも可)
線を描く。
tablet*」ボタン
Tabletの切り替え。ブラシとストロークタイプが切り替わる。tablet2は下記のボタンで変更可能。
それ以外のボタン
tablet2のブラシやストロークタイプが切り替わる。
ボタン

これらのボタンで「tablet2」の設定が変わる。
「tablet1」は変化なし。

「* Default *」
ブラシがNullBrushに、ストロークタイプがNullStrokeになる。
「StandardStroke」
ストロークタイプが補正付きのものになる。
「StandardBrush1Command」
筆っぽいブラシ。筆圧対応、回転有りのブラシ。
「StandardBrushCommand」
StandardBrush1Commandと同じ。
「ベタブラシで描画」
べた塗りのブラシ。

概要

この版で増えたボタンはCommandを選択するものになっている。
TabletにいろいろなCommandを集約することで、利用者がブラシなどを作れるようにするため。


Commandは今のところブラシ(WindowsApplication1.Plugin.Brushes.*)を呼び出すものになっている。
モデル上でのCommandはペンタブレットやマウスなどで起動するコントロールクラス。
ブラシ呼び出しのためのコードを持つクラス。呼び出され方は全Commandで共通。つまりブラシの呼び出し方を統一するクラス。


ボタンにはCommandの他に、ストローク補正を行うStrokeModifierも入っていて、統一されているかのように見えるけどCommandとStrokeModifierとは別扱い。
使われ方が違うので型も処理も別。
TabletにはCommandとStrokeModifierの両方を設定する。


ボタンのラベルにはクラス名をそのまま表示している。
そのうち、アイコンを表示するようになるかも知れない。128×128くらいの絵を用意してもいいかも知れない。
選択中のツールを表示するなら、「並べられたボタンのどれが押し込まれているか」を見せるよりも「定位置に何かを表示する」ほうが良さそう。