File indexing completed on 2023-09-24 07:56:49
0001 /* 0002 SPDX-FileCopyrightText: 2009 Daniel Laidig <d.laidig@gmx.de> 0003 SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 #ifndef PRACTICE_ABSTRACTWIDGET_H 0007 #define PRACTICE_ABSTRACTWIDGET_H 0008 0009 #include "abstractfrontend.h" 0010 0011 #include <QWidget> 0012 0013 class QVariant; 0014 0015 namespace Practice 0016 { 0017 class GuiFrontend; 0018 0019 class AbstractModeWidget : public QWidget 0020 { 0021 Q_OBJECT 0022 0023 public: 0024 explicit AbstractModeWidget(GuiFrontend *frontend, QWidget *parent = nullptr); 0025 ~AbstractModeWidget() override = default; 0026 0027 virtual void setQuestion(const QVariant &question) = 0; 0028 virtual void setSolution(const QVariant &solution) = 0; 0029 virtual QVariant userInput() = 0; 0030 virtual void setHint(const QVariant &hint) = 0; 0031 virtual void setFeedback(const QVariant &feedback) = 0; 0032 virtual void setFeedbackState(AbstractFrontend::ResultState feedbackState) = 0; 0033 virtual void setResultState(AbstractFrontend::ResultState resultState) = 0; 0034 0035 virtual void setQuestionSound(const QUrl &soundUrl) = 0; 0036 virtual void setSolutionSound(const QUrl &soundUrl) = 0; 0037 virtual void setSolutionPronunciation(const QString &pronunciationText) = 0; 0038 virtual void setQuestionPronunciation(const QString &pronunciationText) = 0; 0039 0040 virtual void setQuestionFont(const QFont &font) = 0; 0041 virtual void setSolutionFont(const QFont &font) = 0; 0042 0043 virtual void setSynonym(const QString &entry) = 0; 0044 0045 virtual void setResultPalettes(const QPalette &correctPalette, const QPalette &wrongPalette); 0046 0047 public Q_SLOTS: 0048 virtual void showQuestion() = 0; 0049 virtual void showSolution() = 0; 0050 virtual void showSynonym() = 0; 0051 0052 Q_SIGNALS: 0053 void continueAction(); 0054 void stopAudio(); 0055 void hintAction(); 0056 void skipAction(); 0057 0058 protected: 0059 GuiFrontend *m_frontend{nullptr}; 0060 0061 QPalette m_correctPalette; 0062 QPalette m_wrongPalette; 0063 }; 0064 0065 } 0066 0067 #endif // PRACTICE_ABSTRACTWIDGET_H