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);
+}
+