1/* 2 * Copyright 2006, Haiku. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Stephan Aßmus <superstippi@gmx.de> 7 */ 8 9#ifndef SELECTION_H 10#define SELECTION_H 11 12#include <List.h> 13 14#include "Observable.h" 15 16class Selectable; 17 18class Selection : public Observable { 19 public: 20 Selection(); 21 virtual ~Selection(); 22 23 // modify selection 24 bool Select(Selectable* object, 25 bool extend = false); 26 void Deselect(Selectable* object); 27 void DeselectAll(); 28 29 // query selection 30 Selectable* SelectableAt(int32 index) const; 31 Selectable* SelectableAtFast(int32 index) const; 32 int32 CountSelected() const; 33 34 private: 35 void _DeselectAllExcept(Selectable* object); 36 37 BList fSelected; 38}; 39 40#endif // SELECTION_H 41