annotate layer/SingleColourLayer.h @ 640:c6d705bf1672

Merge from branch "qt5". This revision actually builds with Qt4 (late releases) or Qt5, though it will warn on configure with Qt4.
author Chris Cannam
date Tue, 14 May 2013 12:36:43 +0100
parents 156a120345ae
children 8b614632568c
rev   line source
Chris@287 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@287 2
Chris@287 3 /*
Chris@287 4 Sonic Visualiser
Chris@287 5 An audio file viewer and annotation editor.
Chris@287 6 Centre for Digital Music, Queen Mary, University of London.
Chris@287 7 This file copyright 2007 QMUL.
Chris@287 8
Chris@287 9 This program is free software; you can redistribute it and/or
Chris@287 10 modify it under the terms of the GNU General Public License as
Chris@287 11 published by the Free Software Foundation; either version 2 of the
Chris@287 12 License, or (at your option) any later version. See the file
Chris@287 13 COPYING included with this distribution for more information.
Chris@287 14 */
Chris@287 15
Chris@287 16 #ifndef _SINGLE_COLOUR_LAYER_H_
Chris@287 17 #define _SINGLE_COLOUR_LAYER_H_
Chris@287 18
Chris@287 19 #include "Layer.h"
Chris@287 20 #include <QColor>
Chris@287 21 #include <vector>
Chris@293 22 #include <map>
Chris@287 23
Chris@287 24 class SingleColourLayer : public Layer
Chris@287 25 {
Chris@397 26 Q_OBJECT
Chris@397 27
Chris@287 28 public:
Chris@615 29 /**
Chris@615 30 * Set the colour used to draw primary items in the layer. The
Chris@615 31 * colour value is a colour database index as returned by
Chris@615 32 * ColourDatabase::getColourIndex().
Chris@615 33 */
Chris@287 34 virtual void setBaseColour(int);
Chris@615 35
Chris@615 36 /**
Chris@615 37 * Retrieve the current primary drawing colour, as a
Chris@615 38 * ColourDatabase index value.
Chris@615 39 */
Chris@287 40 virtual int getBaseColour() const;
Chris@287 41
Chris@615 42 /**
Chris@615 43 * Return true if the layer currently has a dark colour on a light
Chris@615 44 * background, false if it has a light colour on a dark
Chris@615 45 * background.
Chris@615 46 */
Chris@287 47 virtual bool hasLightBackground() const;
Chris@287 48
Chris@615 49 /**
Chris@615 50 * Implements Layer::getLayerColourSignificance()
Chris@615 51 */
Chris@287 52 virtual ColourSignificance getLayerColourSignificance() const {
Chris@287 53 return ColourDistinguishes;
Chris@287 54 }
Chris@287 55
Chris@299 56 virtual QPixmap getLayerPresentationPixmap(QSize size) const;
Chris@299 57
Chris@287 58 virtual PropertyList getProperties() const;
Chris@287 59 virtual QString getPropertyLabel(const PropertyName &) const;
Chris@287 60 virtual PropertyType getPropertyType(const PropertyName &) const;
Chris@287 61 virtual QString getPropertyGroupName(const PropertyName &) const;
Chris@287 62 virtual int getPropertyRangeAndValue(const PropertyName &,
Chris@287 63 int *min, int *max, int *deflt) const;
Chris@287 64 virtual QString getPropertyValueLabel(const PropertyName &,
Chris@287 65 int value) const;
Chris@287 66 virtual RangeMapper *getNewPropertyRangeMapper(const PropertyName &) const;
Chris@287 67 virtual void setProperty(const PropertyName &, int value);
Chris@287 68
Chris@316 69 virtual void toXml(QTextStream &stream, QString indent = "",
Chris@316 70 QString extraAttributes = "") const;
Chris@287 71
Chris@287 72 virtual void setProperties(const QXmlAttributes &attributes);
Chris@287 73
Chris@287 74 virtual void setDefaultColourFor(View *v);
Chris@287 75
Chris@287 76 protected:
Chris@287 77 SingleColourLayer();
Chris@287 78
Chris@287 79 virtual QColor getBaseQColor() const;
Chris@287 80 virtual QColor getBackgroundQColor(View *v) const;
Chris@287 81 virtual QColor getForegroundQColor(View *v) const;
Chris@287 82 std::vector<QColor> getPartialShades(View *v) const;
Chris@287 83
Chris@287 84 virtual void flagBaseColourChanged() { }
Chris@287 85 virtual int getDefaultColourHint(bool /* darkBackground */,
Chris@287 86 bool & /* impose */) { return -1; }
Chris@287 87
Chris@293 88 typedef std::map<int, int> ColourRefCount;
Chris@293 89 static ColourRefCount m_colourRefCount;
Chris@287 90
Chris@287 91 int m_colour;
Chris@294 92 bool m_colourExplicitlySet;
Chris@366 93 bool m_defaultColourSet;
Chris@287 94 };
Chris@287 95
Chris@287 96 #endif