オートコンプリート時の表示順の仕様
4つの要素で決定されます。
- SortMode - 比較方法
- SepareteDirectory - ディレクトリの分離
- SortReverse - 逆順
- Prioritize - プライオリティ設定の有効
まず、Giraffe.Config.Listのこれらの値が参照され、それらを引数にGetSortModeイベントが呼ばれます。
array Giraffe.Event.GetSortMode(int sort_mode, int separate_directory, bool reverse, bool prioritize);
戻り値が存在する場合、配列とみなし、その要素を引数と同じ順で値を解釈し、それに従ってソートされます。
SortMode
数値で選びます。
- 0 - 無し
- 1 - 名前
- 2 - 拡張子
- 5 - ユーザ定義
ユーザ定義にした場合、グローバル関数List-Sort-Compareが呼ばれます。引数の2つの文字列が正しい順ならtrueを返します。
Reverse
ソート結果を逆順にする場合にtrueにします。
Prioritize
プライオリティ設定を有効にする場合にtrueにします。
プライオリティ設定はGiraffe.ListBox.Priorityに保持されます。
デフォルトでGiraffe.Config.Path.Priorityのファイルの内容が読み込まれています。ファイルの上位が優先されます。
読み込まない、もしくはUnloadにより、Giraffe.ListBox.Priority.IsLoadedがfalseを返す場合、オートコンプリート毎に読み込まれます。
これにより、履歴をプライオリティに反映させるなど、動的にプライオリティを決定することが可能です。
設定ファイルを経由せず、Giraffe.ListBox.Priority.SetValue(name, value)で直接設定することも可能です。
値の取得はGetValue(name)です。
値の最上位はゼロで、存在しない場合を示す最下位はUINTの最大値となります。