Chris@58
|
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- 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@5
|
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_RULER_H_
|
Chris@0
|
11 #define _TIME_RULER_H_
|
Chris@0
|
12
|
Chris@0
|
13 #include "base/Layer.h"
|
Chris@0
|
14
|
Chris@0
|
15 #include <QRect>
|
Chris@0
|
16 #include <QColor>
|
Chris@0
|
17
|
Chris@0
|
18 class View;
|
Chris@0
|
19 class Model;
|
Chris@0
|
20 class QPainter;
|
Chris@0
|
21
|
Chris@0
|
22 class TimeRulerLayer : public Layer
|
Chris@0
|
23 {
|
Chris@0
|
24 Q_OBJECT
|
Chris@0
|
25
|
Chris@0
|
26 public:
|
Chris@44
|
27 TimeRulerLayer();
|
Chris@0
|
28
|
Chris@44
|
29 virtual void paint(View *v, QPainter &paint, QRect rect) const;
|
Chris@0
|
30
|
Chris@0
|
31 void setModel(Model *);
|
Chris@0
|
32 virtual const Model *getModel() const { return m_model; }
|
Chris@0
|
33
|
Chris@0
|
34 void setBaseColour(QColor);
|
Chris@0
|
35 QColor getBaseColour() const { return m_colour; }
|
Chris@0
|
36
|
Chris@0
|
37 enum LabelHeight { LabelTop, LabelMiddle, LabelBottom };
|
Chris@0
|
38 void setLabelHeight(LabelHeight h) { m_labelHeight = h; }
|
Chris@0
|
39 LabelHeight getLabelHeight() const { return m_labelHeight; }
|
Chris@0
|
40
|
Chris@0
|
41 virtual PropertyList getProperties() const;
|
Chris@0
|
42 virtual PropertyType getPropertyType(const PropertyName &) const;
|
Chris@0
|
43 virtual int getPropertyRangeAndValue(const PropertyName &,
|
Chris@0
|
44 int *min, int *max) const;
|
Chris@0
|
45 virtual QString getPropertyValueLabel(const PropertyName &,
|
Chris@0
|
46 int value) const;
|
Chris@0
|
47 virtual void setProperty(const PropertyName &, int value);
|
Chris@0
|
48
|
Chris@6
|
49 virtual QString toXmlString(QString indent = "",
|
Chris@6
|
50 QString extraAttributes = "") const;
|
Chris@6
|
51
|
Chris@11
|
52 void setProperties(const QXmlAttributes &attributes);
|
Chris@11
|
53
|
Chris@0
|
54 protected:
|
Chris@0
|
55 Model *m_model;
|
Chris@0
|
56 QColor m_colour;
|
Chris@0
|
57 LabelHeight m_labelHeight;
|
Chris@0
|
58 };
|
Chris@0
|
59
|
Chris@0
|
60 #endif
|