annotate layer/PaintAssistant.h @ 1204:d421df27e184 3.0-integration

Further PropertyBox layout overhaul: avoid crash (/ assertion failure) when property type changes from e.g. colour to colourmap, by replacing the existing widget within the layout rather than trying to repopulate it
author Chris Cannam
date Tue, 20 Dec 2016 10:49:24 +0000
parents ee01a4062747
children dc6457ac4d07
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@1078 16 #ifndef PAINT_ASSISTANT_H
Chris@1078 17 #define PAINT_ASSISTANT_H
Chris@195 18
Chris@195 19 #include <QRect>
Chris@195 20 #include <vector>
Chris@195 21
Chris@195 22 class QPainter;
Chris@1078 23 class Layer;
Chris@1078 24 class LayerGeometryProvider;
Chris@195 25
Chris@195 26 class PaintAssistant
Chris@195 27 {
Chris@195 28 public:
Chris@195 29 enum Scale { LinearScale, MeterScale, dBScale };
Chris@195 30
Chris@195 31 static void paintVerticalLevelScale(QPainter &p, QRect rect,
Chris@905 32 double minVal, double maxVal,
Chris@220 33 Scale scale, int &multRtn,
Chris@195 34 std::vector<int> *markCoordRtns = 0);
Chris@195 35
Chris@905 36 static int getYForValue(Scale scale, double value,
Chris@905 37 double minVal, double maxVal,
Chris@195 38 int minY, int height);
Chris@1078 39
Chris@1078 40 enum TextStyle {
Chris@1078 41 BoxedText,
Chris@1078 42 OutlinedText,
Chris@1078 43 OutlinedItalicText
Chris@1078 44 };
Chris@1078 45
Chris@1078 46 static void drawVisibleText(const LayerGeometryProvider *,
Chris@1078 47 QPainter &p, int x, int y,
Chris@1078 48 QString text, TextStyle style);
Chris@195 49 };
Chris@195 50
Chris@195 51 #endif