しばらくほったらかしになっていた俺的アウトラインプロセッサーの作成。やめたわけではありません。今回はノードの分割と統合をやってみます。

ノードの分割はリッチテキストのカーソルの位置で分割します。分割された後ろの部分は新しく作成された次のノードに表示されます。

ノードの統合は現在選択されているノードと次の位置にあるノードを結合します。また次のノードが子ノードをもつ場合は子ノードも移動させます。

ではやってみましょう。

ノードの統合はIntegrationNodesメソッド、分割はDivisionNodeでおこないます。引数は1ならSplitContainerの上側、2なら下側です。

これで完成!

あと右クリックされたらメニューで選択できるようにしましょう。

これでメニューが表示されます。ただツリービューを右クリックするだけではアイテムは選択されたことにはなりません。そこで右クリックされたら座標を調べてそこにあるアイテムを選択状態にします。それからメニューを表示させます。それから右クリックされたら座標にアイテムが存在しない場合はなにもおきません。