Swyftのユーザーインターフェイス その2¶
コードを書く前に、LEAPキーの状態遷移を書き出してみる。
まずはイベントの種類¶
イベント名 |
説明 |
---|---|
LF下 |
LEAP Forward keyDown event |
LF上 |
LEAP Forward keyUp event |
LB下 |
LEAP Back keyDown event |
LB上 |
LEAP Back keyUp event |
Tab下 |
Tab keyDown event |
Tab上 |
Tab keyUp event |
その他 |
その他のキーイベント |
SwyftではLeapキーを押している間だけ検索する。そのため、keyDownとKeyUpを区別する必要があり、keyDownイベントとkeyUpの2つのイベントを分けている。 TabキーはLeapキーとの組み合わせで再検索を行うためにイベントを追加した。
次に状態の種類¶
状態名 |
説明 |
---|---|
normal |
通常状態。各種キー入力はそのままTextViewへ渡される |
findF |
前方検索状態。各種キー入力された文字列が検索文字列として前方逐次検索される |
findB |
後方検索状態。各種キー入力された文字列が検索文字列として後方逐次検索される |
select |
選択状態。現在のカーソル位置とマークされた位置を選択状態にする。 |
状態遷移図を書くとこんな感じ。¶
![digraph foo {
{rank = same; normal}
{rank = same; findF; findB}
{rank = same; select}
"normal" -> "findF" [ label = "LF下" ];
"normal" -> "findB" [ label = "LB下" ];
"normal" -> "normal" [ label = "その他" ];
"findF" -> "select" [ label = "LB下" ];
"findF" -> "normal" [ label = "LF上" ];
"findF" -> "findF" [ label = "その他" ];
"findB" -> "select" [ label = "LF下" ];
"findB" -> "normal" [ label = "LB上" ];
"findB" -> "findB" [ label = "その他" ];
"select" -> "findF" [ label = "LB上" ];
"select" -> "findB" [ label = "LF上" ];
"select" -> "select" [ label = "その他" ];
}](../../../_images/graphviz-a03ad0e591f1653cfd19f4de6085e76b0f5a2902.png)
眠いから、状態遷移表はまた次に書く。
Comments
comments powered by Disqus