◀ANSI版開発トップへ
  • 3746 同期スクロールの改善
    • 3747 上スクロールと下スクロールの定義
    • 3748 Re: 同期スクロールの改善
  • [3746] 同期スクロールの改善 げんた 2004年09月11日 15:48

    同期スクロールで対になるウィンドウが少しずれている場合にはそのずれを維持するように変更してみました.
    http://members.at.infoseek.co.jp/sakura_editor/snapshot/sakura-symc-scroll.zip
    バイナリ,diff両方入ってます.

    同期スクロールチェックが散らばっていたのをCEditView::SyncScrollV()とSyncScrollHに集約してありますので,そこを変更することで従来通りの動作,新しい動作,あるいはもっと別の動作(たとえば右ペインは必ず左ペインの続きになるとか)と機能を変更しやすくなっています.

    ファイル末尾での複数行削除後で編集部分がウィンドウの上部数行だけ見えている場合に,ScrollAtV関数が無駄の少ないところまで勝手に位置を調整してしまうために左右がずれてしまうことがあるのですが,これは現状も同じなのでとりあえず見なかったことにしてあります.

    MoveCursorのbDrawフラグというのが「再描画の有無」と説明されていますが実質的にはカーソル位置調整とあわせてスクロール位置の調整を行うかどうかのフラグなので名称を変更しました.

    ---
    同期させるところはだいたいできましたので,あとは意図的に「ずらす」方法を考えないと現状とあまり変わらなくなってしまいます.
    とりあえず思いついた案:
    * 同期スクロールON/OFFを独立したコマンドとしてツールバーに割り当て可能にする
    * SHIFTを押しながらスクロールバーを操作すると同期しない
    * 同期無しスクロールというコマンドを新設
    Shift+スクロールバーが最も使いやすいかな.

    共通設定はチェックボックスからコンボに変えて
    垂直同期スクロール方法: [なし][同一行][同一量][継続行]
    (選択肢の名前はてきと~)
    ってところかな.

    ---
    おまけとして上のバイナリにはFileSaveAsの保存文字コード指定の修正が入っています.
    • [3747] 上スクロールと下スクロールの定義 げんた 2004年09月11日 16:00

      余談ですが,上下スクロールの解釈が場所によってばらばらで,最初実装したときは逆方向にスクロールするのをおもしろがっていたりしました.diffを見ていただくとわかりますが,スクロール行数を渡す部分で符号反転している場所があります.

      しっかりとコメントが書かれてはいるのですが,言葉の定義が一致していないからあんまり役に立っていません.

      で,質問
      上スクロールといったら,行番号は増える方向
      下スクロールといったら,行番号は減る方向

      つまりカーソルを下に移動していくと「上」スクロールが始まるという解釈が一般的?
      個人的には紙が止まっていて枠が下に動くから行番号が増える方向が下スクロールのような気がしてしまいます.
      いずれにしても丁寧に書いてある(から余計たちが悪い)コメントは見直した方がいいなという話でした.

      ↓次の人がPageUpとRollUpの違いについてうんちくを垂れる方に一万ペリカ.
    • [3748] Re: 同期スクロールの改善 げんた 2004年09月11日 22:26

      とりあえずSHIFT押下で同期解除されるようにしました.
      http://members.at.infoseek.co.jp/sakura_editor/snapshot/sakura-sync-scroll2.zip