ページ

2008年10月26日日曜日

範囲選択履歴(その7)履歴の追加

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

範囲選択でキャプチャを実行した時にそのサイズを履歴に追加する。履歴の管理は最近使ったものを一番上に持ってくる様にする。

設定メソッドは次の通り。

- (void)setSize:(NSSize)size
{
NSValue* value = [NSValue valueWithSize:size];
[_history_list addObject:value];
if ([_history_list containsObject:value]) {
[_history_list removeObject:value]; // (1)
}
if ([_history_list count] == MAX_HISTORY) {
[_history_list removeObjectAtIndex:(MAX_HISTORY-1)]; // (2)
}

[_history_list insertObject:value atIndex:0]; // (3)
}

渡されたサイズが既に存在する場合は重複を避けるために削除しておく(1)。また履歴がいっぱいになった場合は最後のエントリを削除する(2)。追加は先頭(index=0)に行う(3)。

こんな感じ。