annotate layer/TimeValueLayer.h @ 11:2d5005f2b3d9

* Rework handling of layer properties in file I/O -- we now get the individual layers to load and save them rather than doing it via generic property lists in the base class, so as to ensure we read and write meaningful values rather than generic int values requiring conversion.
author Chris Cannam
date Thu, 19 Jan 2006 12:54:38 +0000
parents 02aaea1ffaf7
children 01849cd277e6
rev   line source
Chris@0 1 /* -*- c-basic-offset: 4 -*- vi:set ts=8 sts=4 sw=4: */
Chris@0 2
Chris@0 3 /*
Chris@0 4 A waveform viewer and audio annotation editor.
Chris@3 5 Chris Cannam, Queen Mary University of London, 2005-2006
Chris@0 6
Chris@0 7 This is experimental software. Not for distribution.
Chris@0 8 */
Chris@0 9
Chris@0 10 #ifndef _TIME_VALUE_VIEW_H_
Chris@0 11 #define _TIME_VALUE_VIEW_H_
Chris@0 12
Chris@0 13 #include "base/Layer.h"
Chris@0 14 #include "model/SparseTimeValueModel.h"
Chris@0 15
Chris@0 16 #include <QObject>
Chris@0 17 #include <QColor>
Chris@0 18
Chris@0 19 class View;
Chris@0 20 class QPainter;
Chris@0 21
Chris@0 22 class TimeValueLayer : public Layer
Chris@0 23 {
Chris@0 24 Q_OBJECT
Chris@0 25
Chris@0 26 public:
Chris@0 27 TimeValueLayer(View *w);
Chris@0 28
Chris@0 29 virtual void paint(QPainter &paint, QRect rect) const;
Chris@0 30
Chris@0 31 virtual QRect getFeatureDescriptionRect(QPainter &, QPoint) const;
Chris@0 32 virtual void paintLocalFeatureDescription(QPainter &, QRect, QPoint) const;
Chris@0 33
Chris@0 34 virtual const Model *getModel() const { return m_model; }
Chris@0 35 void setModel(SparseTimeValueModel *model);
Chris@0 36
Chris@0 37 virtual PropertyList getProperties() const;
Chris@0 38 virtual PropertyType getPropertyType(const PropertyName &) const;
Chris@0 39 virtual int getPropertyRangeAndValue(const PropertyName &,
Chris@0 40 int *min, int *max) const;
Chris@0 41 virtual QString getPropertyValueLabel(const PropertyName &,
Chris@0 42 int value) const;
Chris@0 43 virtual void setProperty(const PropertyName &, int value);
Chris@0 44
Chris@0 45 void setBaseColour(QColor);
Chris@0 46 QColor getBaseColour() const { return m_colour; }
Chris@0 47
Chris@6 48 enum PlotStyle { PlotPoints, PlotStems, PlotConnectedPoints, PlotLines, PlotCurve };
Chris@0 49
Chris@0 50 void setPlotStyle(PlotStyle style);
Chris@0 51 PlotStyle getPlotStyle() const { return m_plotStyle; }
Chris@0 52
Chris@0 53 virtual QString getPropertyContainerIconName() const { return "values"; }
Chris@0 54
Chris@0 55 virtual bool isLayerScrollable() const;
Chris@0 56
Chris@0 57 virtual int getCompletion() const { return m_model->getCompletion(); }
Chris@0 58
Chris@6 59 virtual QString toXmlString(QString indent = "",
Chris@6 60 QString extraAttributes = "") const;
Chris@6 61
Chris@11 62 void setProperties(const QXmlAttributes &attributes);
Chris@11 63
Chris@0 64 protected:
Chris@0 65 SparseTimeValueModel::PointList getLocalPoints(int) const;
Chris@0 66
Chris@0 67 SparseTimeValueModel *m_model;
Chris@0 68 QColor m_colour;
Chris@0 69 PlotStyle m_plotStyle;
Chris@0 70 };
Chris@0 71
Chris@0 72 #endif
Chris@0 73