印刷
カテゴリ: テキストエディタ作成
参照数: 514

検索その3の続き。全然検索関係なくなってるな…一応検索に関係ある表示周りやってる関係なんだけど。

今回は範囲選択。マウスでの範囲選択から実装してキーでの範囲選択は同じ関数呼び出すだけかな。

 

/**
 * @struct select_point_t
 * @brief 選択位置情報
**/
typedef struct _select_column_t {

	editor::bsize_t column;	///< 文字位置
	editor::bsize_t line;	///< 行位置
} select_column_t;

/**
 * @struct select_area_t
 * @brief 選択情報
**/
typedef struct _select_area_t {

	bool select;			///< 選択状態フラグ
	bool rectangle;			///< 矩形選択フラグ
	select_column_t start;	///< 選択開始位置
	select_column_t end;	///< 選択終了位置
} select_area_t;

二つ定義を追加。あとは画面上の点から、テキストのどの部分かを計算する泥臭い関数を追加したらほぼ完成。

表示時に選択範囲内であれば色を変える…ここら辺はキーワード表示と一緒。

で、こんな感じ。

スクリーンショット 2019 03 22 3.09.47

矩形選択。

スクリーンショット 2019 03 22 5.07.50

部品が色々揃ってきたんで機能の実現がラクになってきた。

次はやっと検索が実装できるかな!