◀一般トップへ
  • 3295 undoを大きく行ないたい
    • 3354 Re:undoを大きく行ないたい
  • [3295] undoを大きく行ないたい ty 2003年09月16日 09:17

    undoを、大きな単位で行なえないでしょうか。

    例えば、文字列を打ってからサクラでundoを行なうと、その直前の動作だけがその対象になり、1文字1文字ずつ消えていきますが、これを連続したものを一回のundoで戻りたいのです。

    例
    「ああああああああ」
    と連続して打ったものを一回undoすると、今のサクラでは、
    「あああああああ」
    と一文字しか戻りませんが、これを
    「」とまで戻したいのです。
    今のIEやMozillaのテキスト入力欄がこの方式をとっています。

    良かったら、ご検討ください。
    • [3354] Re:undoを大きく行ないたい wmlhq 2003年10月09日 14:15

      ちょっと技術的な話を。
      コマンドの連続はCEditView::HandleCommand中のbRepeatフラグで検出。
      最適化のネックになっているCOpe*のpublicメンバーをメソッドで隠蔽し、連続かどうかのフラグを追加する。メモリが逼迫しているので、ここではビットフィールドを使うこと。
      まとめてundoするコマンドはCommand_UNDOGROUPで実装する。共通設定にチェック項目「元に戻すときは処理をまとめて」を追加。