ビュー

Last-modified: 2014-01-28 (火) 00:18:54

目次

関連

検索:ビュー

ビュー周辺のタグ

#tag(0,ビュー)

ビューとは

:t/ビュー?

「カメラを回転」「キャンバスを回転」←→「書き換え回転」「(選択している)レイヤーを回転(して重ね直し)」

表示。拡大縮小、回転、スクロール、透明化。
ドキュメントを変更せずに表示だけ変えるとき、ビューを変更することになる。

各種プレビューも含まれる。
プレビューは一時的なドキュメントを表示するビュー

ドキュメント上の位置、倍率などの他、ウィンドウの位置なども含める。
複数のウィンドウで同じドキュメントを開いているときは全てのウィンドウ位置を保存


複数ウィンドウが同じドキュメントを共有できれば不要。
でもアクティブになった時点で同期してないと。
ドキュメント/共有

表示範囲周辺のドキュメントと、ドキュメント全体の大きさ(スクロールバーの長さ調節のため)があればいい。

ビューアンドゥ

さっき操作したドキュメントの、さっきのレイヤーの、さっきの位置に戻る操作。
「さっき」を決めにくいので、ユーザーが登録操作をしたビューだけを対象にするか、編集したときにアンドゥ候補に登録。

ビュードキュメントの一部

ドキュメントファイルごとに保存できるように。
ファイルに埋め込む必要は無いが、埋め込んだ方が良いはず。

ドキュメントごとにビュー

ドキュメント切り替えでビューも切り替わる。
ウィンドウツールパレットの状態も。

そのドキュメントごとに作業を保存できるように。

ビュー別のウィンドウ

ウィンドウ切り替えで表示するレイヤーや表示範囲が変わるように。
ひとつのドキュメントを複数の見方で。

キャンバスウィンドウの色もビューの一部

レイヤーを何も表示していないときや、何も描かれていない部分の色。
ドキュメントファイルエクスポートには影響しないのでビューの一部に。

キャンバスウィンドウ色はキャンバスの領域外(描画できない範囲)の色。それとキャンバス領域内の透明部分。
色に加えて不透明度も。半透明の時はキャンバス表示用ウィンドウが透けるので、デスクトップが見える。
不透明度を下げすぎるとWindowsイベントを受け取らなくなるので、最前面に表示したまま背面のアプリを操作できるはず。

ここを描く

キャンバスのどこを描くのか範囲指定しておくと「画面いっぱいに表示」などビューの操作が最適化されるように。
その範囲だけをキャンバスとみなしてビューの処理をする。
Homeキーで描く範囲の中心を表示するようにするとか。

この範囲の外を淡色表示にしたり、境界線を表示する必要は無い。

範囲設定の祭は、「選択中レイヤーの不透明領域を全て含める」という選択の仕方もできるように。

ビュー履歴

進む/戻るでビューポイントを切り替え。
例えばPaintgraphicの拡大率トグル。これを2世代ではなく複数世代に、かつ拡大率だけでなくビューポイントで。
UIはリスト表示など不要。1つ進む/1つ戻るだけで十分。
「1つ」とは?履歴が増えるタイミングは?

ビュー履歴ドキュメントファイル保存対象。

表示状態を登録。
レイヤーと表示位置と表示倍率を1つのウィンドウで複数切り替え。
事前に登録するよりも実際に使った履歴を再利用できたほうが実用的?
でも余計な履歴が入るとかえって選択しづらいので、事前登録してトグル対象に→切り替え直後の解除コマンドか、UIから選択して対象除外のほうがよさそう。

100%表示

ドキュメントの全ピクセルを再現できる表示。
ドキュメントの1pxが画面上の1pxになる大きさで。

実際の大きさ

「実際の大きさ」は画面上でドキュメントの大きさを再現する表示。
dpi合わせをする必要がある。1cm幅を画面上に表示させて、「これが実際の1cmになるようにスライダーを調整してください。」
Windowsの文字はデフォルトで96dpi

ビュー解像度をDPIに

画面いっぱいに表示

  • 全体(画面サイズに合わせる)
    ドキュメント全体が表示されるように表示
  • 画面いっぱい
    画面全体が使われるように表示

こうしたほうが「幅に合わせる」「高さに合わせる」よりも使いやすい。

レイヤーの表示状態は共有。

レイヤーの表示/非表示状態はどのビューポイントでも共通。
1つ変えれば全て変わる。

MDI子ウィンドウの場合とは違う。

ビューの操作もコマンドから行うべきか

ビューの操作もコマンドから行うべき。
後のドキュメント編集に影響するので。

コマンドはデータではなく入力を表すものなので、ビューの影響を受ける。

ストローク中でもビューの操作を有効にしたい

線(ドラッグで描画)などのストロークの途中を無視するようなツールでは、ストローク中にも表示倍率を変えられるようにしたい。
実装は簡単なはず。ビューの操作を禁止しないだけ。

点指定と枠指定で拡大/縮小(ズーム

枠でも点でも指定できるようにしたい。

点→拡大ツールでクリック、あるいはビュー操作モードドラッグドラッグ量が拡大量、ドラッグ開始位置が基点)
枠→表示する範囲を矩形の角2点で指定。

描く範囲が決まっていて、その範囲をできるだけ拡大したいとき…枠指定。
拡大/縮小の様子を見ながら拡大率を調節したいとき…点指定。

ビューの操作を全てジェスチャーでやりたい

:t/UI?

全操作同時受け付け。

ジェスチャー用UI.png

※矩形はキャンバスの模型。ウィンドウっぽく見えるといい。ドキュメントサムネイルが表示できればなおいい。

1.外側を周回
回転
2.外から内、または内から外へドラッグ
縮小、拡大
ドラッグの開始点、終了点を中心にして(開始点/終了点のうち枠内のほうを中心にして)
3.外→内→外(切るような感じ)
画面分割→新規ビュー
4.V字型
上下/左右反転
Vなら上下反転、>なら左右反転
5.内側で円
範囲指定(枠指定)のズーム

…を、ボタン押しなどのUI起動コマンド→ポインター位置にUI表示、の後に入力


[hatena]外→内と外→内→外は途中まで区別できない…ユーザーにフィードバックできない。

ビューの回転と入力

ビューを回転させたら、入力は逆方向に回転させてから使う。
これで見た目と描画を一致させる。

ビューの処理をフィルタープラグイン)に任せるなら、入力の変換もフィルタープラグイン)に任せる。

では反転と拡大は?

反転はもう一度反転。
拡大は入力された座標を拡大率で割って、ビューの基点座標に加える。
縮小なら掛けて…

座標変換

ビューを反映した座標ドキュメント座標を作るのもビューの役目。
ペンタブレットから得た座標…システム座標ドキュメント座標に変換。

各種ツールで使用するのはドキュメント座標のほう。

実装

UIの一部。
入力(画面上の座標ドキュメント上の座標に変換)と出力(画面への描画)で呼ばれる。

表示領域とドキュメントを受けて、表示領域に加工後のドキュメントを描画。


属性