double GetColPostionFromIndex(int index);
/// <summary>
+ /// 座標に対応するインデックスを取得する
+ /// </summary>
+ /// <param name="x">桁方向の座標</param>
+ /// <param name="y">行方向の座標</param>
+ /// <returns>インデックス</returns>
+ /// <remarks>行番号の幅は考慮されてないのでView以外のクラスは呼び出さないでください</remarks>
+ int GetIndexFromPostion(double x, double y);
+
+ /// <summary>
+ /// インデックスに対応する座標を得る
+ /// </summary>
+ /// <param name="index">インデックス</param>
+ /// <returns>行方向と桁方向の相対座標</returns>
+ /// <remarks>行頭にEOFが含まれている場合、0が返ります</remarks>
+ Point GetPostionFromIndex(int index);
+
+ /// <summary>
/// 適切な位置にインデックスを調整する
/// </summary>
/// <param name="index">インデックス</param>
this.Document.Markers.Updated += Markers_Updated;
this._generators[FOLDING_INDEX] = new FoldingGenerator();
this._generators[SYNTAX_HIGLITHER_INDEX] = new SyntaxHilightGenerator();
+ this.WrapWidth = NONE_BREAK_LINE;
#if DEBUG && !NETFX_CORE
if (!Debugger.IsAttached)
{
}
/// <summary>
+ /// ピクセル単位で折り返すかどうか
+ /// </summary>
+ public double WrapWidth
+ {
+ get;
+ set;
+ }
+
+ /// <summary>
+ /// 行を折り返さないことを表す
+ /// </summary>
+ public const double NONE_BREAK_LINE = -1;
+
+ /// <summary>
/// 保持しているレイアウトキャッシュをクリアーする
/// </summary>
public void ClearLayoutCache()
LineToIndexTableData lineData = this.Lines[row];
if (lineData.Length == 0)
{
- layout = this.render.CreateLaytout("", null, null, null);
+ layout = this.render.CreateLaytout("", null, null, null,this.WrapWidth);
}
else
{
let n = Util.ConvertAbsIndexToRelIndex(s, lineHeadIndex, lineData.Length)
select n;
- layout = this.render.CreateLaytout(content, lineData.Syntax, markerRange, selectRange);
+ layout = this.render.CreateLaytout(content, lineData.Syntax, markerRange, selectRange,this.WrapWidth);
}
return layout;