Mercurial > hg > svcore
diff base/Selection.cpp @ 8:214054a0d8b8
* Hook up tool selection buttons to switch the cursor mode
* Implement simple and multi-selection, snapping to the resolution
of the current layer. You can't actually do anything with a selection yet
author | Chris Cannam |
---|---|
date | Mon, 23 Jan 2006 17:02:57 +0000 |
parents | |
children | 73d85d19919f |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/base/Selection.cpp Mon Jan 23 17:02:57 2006 +0000 @@ -0,0 +1,79 @@ +/* -*- 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. +*/ + +#include "Selection.h" + +Selection::Selection() : + m_startFrame(0), + m_endFrame(0) +{ +} + +Selection::Selection(size_t startFrame, size_t endFrame) : + m_startFrame(startFrame), + m_endFrame(endFrame) +{ + if (m_startFrame > m_endFrame) { + size_t tmp = m_endFrame; + m_endFrame = m_startFrame; + m_startFrame = tmp; + } +} + +Selection::Selection(const Selection &s) : + m_startFrame(s.m_startFrame), + m_endFrame(s.m_endFrame) +{ +} + +Selection & +Selection::operator=(const Selection &s) +{ + if (this != &s) { + m_startFrame = s.m_startFrame; + m_endFrame = s.m_endFrame; + } + return *this; +} + +Selection::~Selection() +{ +} + +bool +Selection::isEmpty() const +{ + return m_startFrame == m_endFrame; +} + +size_t +Selection::getStartFrame() const +{ + return m_startFrame; +} + +size_t +Selection::getEndFrame() const +{ + return m_endFrame; +} + +bool +Selection::operator<(const Selection &s) const +{ + return (m_startFrame < s.m_startFrame); +} + +bool +Selection::operator==(const Selection &s) const +{ + return (m_startFrame == s.m_startFrame && + m_endFrame == s.m_endFrame); +} +