1 /* smplayer, GUI front-end for mplayer. 2 Copyright (C) 2006-2021 Ricardo Villalba <ricardo@smplayer.info> 3 4 This program is free software; you can redistribute it and/or modify 5 it under the terms of the GNU General Public License as published by 6 the Free Software Foundation; either version 2 of the License, or 7 (at your option) any later version. 8 9 This program is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 GNU General Public License for more details. 13 14 You should have received a copy of the GNU General Public License 15 along with this program; if not, write to the Free Software 16 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 */ 18 19 #ifndef PREFWIDGET_H 20 #define PREFWIDGET_H 21 22 #include <QWidget> 23 #include <QPixmap> 24 #include <QString> 25 26 27 #define TEST_AND_SET( Pref, Dialog ) \ 28 if ( Pref != Dialog ) { Pref = Dialog; requires_restart = true; } 29 30 class QEvent; 31 32 class PrefWidget : public QWidget 33 { 34 35 public: 36 PrefWidget(QWidget * parent = 0, Qt::WindowFlags f = QFlag(0) ); 37 ~PrefWidget(); 38 39 // Return the name of the section 40 virtual QString sectionName(); 41 42 virtual QPixmap sectionIcon(); 43 44 // Return true if the changes made require to restart the mplayer 45 // process. Should be call just after the changes have been applied. requiresRestart()46 virtual bool requiresRestart() { return requires_restart; }; 47 help()48 virtual QString help() { return help_message; }; 49 50 protected: 51 virtual void retranslateStrings(); 52 virtual void changeEvent ( QEvent * event ) ; 53 54 // Help 55 void addSectionTitle(const QString & title); 56 void setWhatsThis( QWidget *w, const QString & title, const QString & text); 57 void clearHelp(); 58 59 virtual void createHelp(); 60 61 bool requires_restart; 62 63 private: 64 QString help_message; 65 }; 66 67 #endif 68