Scintilla/Undo and Redo

Last-modified: 2008-03-01 (土) 06:48:25

アンドゥとリドゥ

Scintillaは複数のレベルのアンドゥとリドゥをする。
それはメモリがなくなるまでアンドゥできるアクションを集め続ける。
Scintillaはドキュメントを変更するアクションを保存する。
Scintillaはキャレット、選択移動、視点スクロール、および同様のものを保存しない。
タイプか削除のシーケンスは、それを抑制の利いたレベルの詳細でアンドゥおよびリドゥをより簡単にするように単一処理に圧縮される。
ユニットとしてアンドゥ処理に動作のシーケンスを結合できる。
これらのシーケンスはSCI_BEGINUNDOACTIONとSCI_ENDUNDOACTIONメッセージの間で発生する。
これらの処理を入れ子にすることができ、トップレベルシーケンスだけがユニットとして元に戻される。

  • SCI_UNDO
  • SCI_CANUNDO
  • SCI_EMPTYUNDOBUFFER
  • SCI_REDO
  • SCI_CANREDO
  • SCI_SETUNDOCOLLECTION(bool collectUndo)
  • SCI_GETUNDOCOLLECTION
  • SCI_BEGINUNDOACTION
  • SCI_ENDUNDOACTION

SCI_UNDO

SCI_CANUNDO

SCI_UNDOは1つの動作、またはアンドゥバッファがSCI_ENDUNDOACTIONポイントに達したなら、すべての動作が対応するSCI_BEGINUNDOACTIONまでを元に戻す。


SCI_CANUNDOは元に戻せなければ0を、そうでなければ1を返す。
あなたはEditメニューのUndoコマンドを有効/無効にするためにこのメッセージの結果を通常使用する。

SCI_REDO

SCI_CANREDO

SCI_REDOは最後のSCI_UNDO操作の効果を元に戻す。


SCI_CANREDOは、リドゥアクションがなければ0を、リドゥするアンドゥアクションがあれば1を返す。
Editメニューのリドゥコマンドで有効/無効は、このメッセージの結果を通常使用できまる。

SCI_EMPTYUNDOBUFFER

このコマンドは保存されているアンドゥまたはリドゥ履歴を忘れるようScintillaに言う。
また、それはアンドゥバッファの始まりにセーブポイントを設定する。それで、ドキュメントは変更されていないように見える。
これはSCN_SAVEPOINTREACHED通知をコンテナに送らない。

[star] 関連項目: SCI_SETSAVEPOINT

SCI_SETUNDOCOLLECTION(bool collectUndo)

SCI_GETUNDOCOLLECTION

SCI_SETUNDOCOLLECTIONでアンドゥ情報を集めるScintillaを制御できる。
true (1)で情報を集め、false (0)で収集を停止する。
もし収集を停止すれば、あなたは、データがバッファにある状態で非連動するアンドゥバッファを避けるのにSCI_EMPTYUNDOBUFFERを使用するべきである。


Scintillaにプログラム(ログビュー)によって変換されたテキストを設定する場合、または、テキストがしばしば削除され作り直される表示ウインドウで、アンドゥ情報の保存を停止するかもしれない。

SCI_BEGINUNDOACTION

SCI_ENDUNDOACTION

1個の操作ですべてのアンドゥをしたいが、いくつかの操作発生させる場合、操作の設定の最初および最後のマークのためにScintillaにこれら2個のメッセージを送信する。
あるいはまた、それらがアンドゥされるなら、あなたが先行か次の操作に結合したくない1セットの操作をマークするのにこれらを使用できる。