Scintilla/Scrolling and automatic scrolling

Last-modified: 2008-03-01 (土) 14:31:28

スクロールと自動スクロール

  • SCI_LINESCROLL(int column, int line)
  • SCI_SCROLLCARET
  • SCI_SETXCARETPOLICY(int caretPolicy, int caretSlop)
  • SCI_SETYCARETPOLICY(int caretPolicy, int caretSlop)
  • SCI_SETVISIBLEPOLICY(int caretPolicy, int caretSlop)
  • SCI_SETHSCROLLBAR(bool visible)
  • SCI_GETHSCROLLBAR
  • SCI_SETVSCROLLBAR(bool visible)
  • SCI_GETVSCROLLBAR
  • SCI_GETXOFFSET
  • SCI_SETXOFFSET(int xOffset)
  • SCI_SETSCROLLWIDTH(int pixelWidth)
  • SCI_GETSCROLLWIDTH
  • SCI_SETSCROLLWIDTHTRACKING(bool tracking)
  • SCI_GETSCROLLWIDTHTRACKING
  • SCI_SETENDATLASTLINE(bool endAtLastLine)
  • SCI_GETENDATLASTLINE

SCI_LINESCROLL(int column, int line)

これは、あなたが指定するカラムと行で表示をスクロールするのを試みる。
プラスの行値はスクリーンの上部で行番号を増加させる(すなわち、ユーザに関する限り、上向きにテキストを動かす)。マイナスの行値は逆である。


カラム測定はデフォルトスタイルのスペースの幅である。
プラス値はビューの左端でカラムを増加させる(すなわち、ユーザに関する限り、左へテキストを動かす)。マイナス値は逆である。

[star] 関連項目: SCI_SETXOFFSET

SCI_SCROLLCARET

現在の位置(選択が全くなければ、これはキャレットである)が目に見えないなら、ビューは、それを現在のキャレットポリシーによると、見えるようにスクロールされる。

SCI_SETXCARETPOLICY(int caretPolicy, int caretSlop)

SCI_SETYCARETPOLICY(int caretPolicy, int caretSlop)

これらはキャレットポリシーを設定する。
caretPolicy値はCARET_SLOP、CARET_STRICT、CARET_JUMPS、およびCARET_EVENの組み合わせである。


CARET_SLOPをもしセットすれば、slop値を定義できる: caretSlop。
この値は脱字記号がそうである求められていないゾーン(UZ)を定義する...求められない。
このゾーンは垂直なマージンにおけるピクセル数、および水平なマージンにおける行数と定義される。
端からキャレットを遠ざけることによって、それは文脈の中で見られる。
これで、キャレットがある識別子を完全に見ることができるそうであり、現在行はそれに続く行のいくつかが見える。しばしばその線に依存している。

CARET_STRICTをセットすればCARET_SLOPによってセットされるポリシーは強制される...厳しく。
caretSlopが用意ができていないなら、キャレットは表示のときに集中させられ、caretSlopが用意ができているなら、UZに入ることができない。

CARET_JUMPSをセットすれば、ポリシーが再び適用される前にキャレットが、より長い間同じ指示に入って来ることができるように、表示はよりエネルギッシュに動かされる。
'3UZ'記法は、3が距離としてUZのサイズをマージンに調節するのを示すのに使用される。

CARET_EVEBがセットされてなければ、対称のUZsを持っている代わりに、左および下のUZsは右および上UZsまで拡張される。
このように私たちは役立つ情報の表示を支持する: 行の開始、ほとんどのコードがあるところ、そしてキャレットの後ろの行、たとえば、関数の本体。

 

[heart] 表: キャレット位置

slopstrictjumpsevenキャレットはマージンに移動可能限界に到達したときの表示(表示外へ出たかUZに入った)
0000Yesキャレットを上/右に置くため移動
0001Yes1つの位置によって移動
0010Yesキャレットを上/右に置くため移動
0011Yesキャレットの中央
01-0キャレットは常に表示の上/右-
01-1No, キャレットは常に中央-
1000Yesキャレットを非対称のUZの外に置くため移動
1001YesキャレットをUZ外に置くため移動
1010Yesキャレットを上または右マージンの3UZに置くため移動
1011Yesキャレットをマージンの3UZに置くため移動
11-0キャレットは常に上/右マージンのUZ-
1101No, UZを保つ1つの位置によって移動
1110No, UZを保つキャレットをマージンの3UZに置くため移動
 

SCI_SETVISIBLEPOLICY(int caretPolicy, int caretSlop)

これは、SCI_ENSUREVISIBLEENFORCEPOLICYが呼ばれるとき、垂直な位置決めがどのように決定しているかを決定する。
それはポリシー引数にVISIBLE_SLOPとVISIBLE_STRICTフラグを要する。
それはSCI_SETYCARETPOLICY(int caretPolicy, int caretSlop)操作と同様である。

SCI_SETHSCROLLBAR(bool visible)

SCI_GETHSCROLLBAR

想定された幅にそれを必要とする場合にだけ、水平スクロールバーを表示する。
それを見るのを望まないなら、SCI_をSETHSCROLLBAR(0)を呼ぶ。
SCI_SETHSCROLLBAR(1)を使用して、再びそれを可能にする。
SCI_GETHSCROLLBARは現在の状態を返す。
必要であると、デフォルト状態はそれを表示する。

[star] 関連項目: SCI_SETSCROLLWIDTH.

SCI_SETVSCROLLBAR(bool visible)

SCI_GETVSCROLLBAR

デフォルトでは、垂直スクロールバーは必要なときに常に表示される。
SCI_SETVSCROLLBARで非表示または表示を選択し、SCI_GETVSCROLLBARで現在の状態を取得する。

SCI_SETXOFFSET(int xOffset)

SCI_GETXOFFSET

xOffsetはテキスト視点の始まりのピクセルの水平スクロール位置である。
0の値はビューの左に見える最初のテキストカラムがある通常位置である。

[star] 関連項目: SCI_LINESCROLL

SCI_SETSCROLLWIDTH(int pixelWidth)

SCI_GETSCROLLWIDTH

性能のために、Scintillaは水平スクロールバーの特性を決定するためにドキュメントの表示幅を測定しない。
代わりに、想定された幅が使用される。
これらのメッセージは、想定されたピクセルのドキュメント幅をセットおよび取得する。
デフォルト値は2000である。
現在目に見える行の幅をスクロールできるのを保証するには、SCI_SETSCROLLWIDTHTRACKINGを使用する。

SCI_SETSCROLLWIDTHTRACKING(bool tracking)

SCI_GETSCROLLWIDTHTRACKING

スクロール幅の追跡が有効なら、スクロール幅は、現在表示されている行のすべてを完全にスクロールできるのを保証するように調整される。
このモードは、より狭くなるようにスクロール幅を決して調整しない。

SCI_SETENDATLASTLINE(bool endAtLastLine)

SCI_GETENDATLASTLINE

SCI_SETENDATLASTLINEがスクロール範囲を設定するので、最大スクロール位置はビュー(デフォルト)の下部に最終行を持っている。
これをfalseにセットすると、最終行の1ページ下にスクロールすることを許容する。