Mercurial > hg > svcore
view base/Selection.h @ 47:bac8b14ab355
* Add menu for re-adding existing layers
* Fix layer tree window so that it at least approximates correct
* Add bundled operations in command history, for use with things like
multiple consecutive changes to a parameter value
* Disambiguate plugins that happen to have identical descriptions
* Add spectral centroid plugin (could use some parameters!)
* Some other fixes
author | Chris Cannam |
---|---|
date | Fri, 17 Mar 2006 17:38:28 +0000 |
parents | 5364a9d338a2 |
children | 39ae3dee27b9 |
line wrap: on
line source
/* -*- c-basic-offset: 4 -*- vi:set ts=8 sts=4 sw=4: */ /* A waveform viewer and audio annotation editor. Chris Cannam, Queen Mary University of London, 2005-2006 This is experimental software. Not for distribution. */ #ifndef _SELECTION_H_ #define _SELECTION_H_ #include <cstddef> #include <set> #include "XmlExportable.h" class Selection { public: Selection(); Selection(size_t startFrame, size_t endFrame); Selection(const Selection &); Selection &operator=(const Selection &); virtual ~Selection(); bool isEmpty() const; size_t getStartFrame() const; size_t getEndFrame() const; bool contains(size_t frame) const; bool operator<(const Selection &) const; bool operator==(const Selection &) const; protected: size_t m_startFrame; size_t m_endFrame; }; class MultiSelection : public XmlExportable { public: MultiSelection(); virtual ~MultiSelection(); typedef std::set<Selection> SelectionList; const SelectionList &getSelections() const; void setSelection(const Selection &selection); void addSelection(const Selection &selection); void removeSelection(const Selection &selection); void clearSelections(); /** * Return the selection that contains a given frame. * If defaultToFollowing is true, and if the frame is not in a * selected area, return the next selection after the given frame. * Return the empty selection if no appropriate selection is found. */ Selection getContainingSelection(size_t frame, bool defaultToFollowing) const; virtual QString toXmlString(QString indent = "", QString extraAttributes = "") const; protected: SelectionList m_selections; }; #endif