File indexing completed on 2025-02-23 04:35:42

0001 /*
0002     SPDX-FileCopyrightText: 2010-2022 Mladen Milinkovic <max@smoothware.net>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #ifndef WAVERENDERER_H
0008 #define WAVERENDERER_H
0009 
0010 #include "core/time.h"
0011 
0012 #include <QWidget>
0013 #include <QPen>
0014 #include <QColor>
0015 #include <QFont>
0016 
0017 namespace SubtitleComposer {
0018 class RichDocument;
0019 class WaveformWidget;
0020 
0021 class WaveRenderer : public QWidget
0022 {
0023     Q_OBJECT
0024 
0025 public:
0026     explicit WaveRenderer(WaveformWidget *parent);
0027 
0028     inline int span() const { return m_vertical ? height() : width(); }
0029     inline bool vertical() const { return m_vertical; }
0030 
0031     inline const QFont & fontText() const { return m_fontText; }
0032     inline const QPen & subTextColor() const { return m_subTextColor; }
0033 
0034     bool showTranslation() const;
0035 
0036 private:
0037     bool event(QEvent *evt) override;
0038 
0039     void paintGraphics(QPainter &painter);
0040     void paintWaveform(QPainter &painter, quint32 widgetWidth, quint32 widgetHeight);
0041 
0042     void onConfigChanged();
0043 
0044 private:
0045     WaveformWidget *m_wfw;
0046 
0047     bool m_vertical = false;
0048 
0049     QFont m_fontNumber;
0050     int m_fontNumberHeight;
0051     QFont m_fontText;
0052 
0053     int m_subBorderWidth;
0054 
0055     QPen m_subNumberColor;
0056     QPen m_subTextColor;
0057 
0058     QPen m_waveInner;
0059     QPen m_waveOuter;
0060 
0061     QColor m_subtitleBack;
0062     QColor m_subtitleBorder;
0063 
0064     QColor m_selectedBack;
0065     QColor m_selectedBorder;
0066 
0067     QPen m_playColor;
0068     QPen m_mouseColor;
0069 };
0070 }
0071 
0072 #endif // WAVERENDERER_H