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