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