annotate layer/PaintAssistant.h @ 1548:bd6af89982d7

Permit getScaleProvidingLayerForUnit to return a dormant layer if there is no visible alternative. This is necessary to avoid the scale disappearing in Tony when the spectrogram is toggled off.
author Chris Cannam
date Thu, 17 Oct 2019 14:44:22 +0100
parents 28075cc658c9
children
rev   line source
Chris@195 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@195 2
Chris@195 3 /*
Chris@195 4 Sonic Visualiser
Chris@195 5 An audio file viewer and annotation editor.
Chris@195 6 Centre for Digital Music, Queen Mary, University of London.
Chris@195 7 This file copyright 2006-2007 Chris Cannam and QMUL.
Chris@195 8
Chris@195 9 This program is free software; you can redistribute it and/or
Chris@195 10 modify it under the terms of the GNU General Public License as
Chris@195 11 published by the Free Software Foundation; either version 2 of the
Chris@195 12 License, or (at your option) any later version. See the file
Chris@195 13 COPYING included with this distribution for more information.
Chris@195 14 */
Chris@195 15
Chris@1228 16 #ifndef SV_PAINT_ASSISTANT_H
Chris@1228 17 #define SV_PAINT_ASSISTANT_H
Chris@195 18
Chris@195 19 #include <QRect>
Chris@1228 20 #include <QPen>
Chris@195 21 #include <vector>
Chris@195 22
Chris@195 23 class QPainter;
Chris@1078 24 class Layer;
Chris@1078 25 class LayerGeometryProvider;
Chris@195 26
Chris@195 27 class PaintAssistant
Chris@195 28 {
Chris@195 29 public:
Chris@195 30 enum Scale { LinearScale, MeterScale, dBScale };
Chris@195 31
Chris@195 32 static void paintVerticalLevelScale(QPainter &p, QRect rect,
Chris@905 33 double minVal, double maxVal,
Chris@220 34 Scale scale, int &multRtn,
Chris@195 35 std::vector<int> *markCoordRtns = 0);
Chris@195 36
Chris@905 37 static int getYForValue(Scale scale, double value,
Chris@905 38 double minVal, double maxVal,
Chris@195 39 int minY, int height);
Chris@1078 40
Chris@1078 41 enum TextStyle {
Chris@1266 42 BoxedText,
Chris@1266 43 OutlinedText,
Chris@1078 44 OutlinedItalicText
Chris@1078 45 };
Chris@1078 46
Chris@1078 47 static void drawVisibleText(const LayerGeometryProvider *,
Chris@1078 48 QPainter &p, int x, int y,
Chris@1078 49 QString text, TextStyle style);
Chris@195 50 };
Chris@195 51
Chris@195 52 #endif