You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
codeine/src/app/xineConfig.h

70 lines
1.4 KiB

// (C) 2005 Max Howell (max.howell@methylblue.com)
// See COPYING file for licensing information
#ifndef XINECONFIG_H
#define XINECONFIG_H
#include <kdialogbase.h>
#include <qptrlist.h>
class KComboBox;
class KLineEdit;
class QCheckBox;
class QGridLayout;
class QSpinBox;
typedef struct xine_s xine_t;
typedef struct xine_cfg_entry_s xine_cfg_entry_t;
///stores a single config entry of the config file
class XineConfigEntry : public QObject
{
enum ClassType { LineEdit, ComboBox, SpinBox, CheckBox };
QWidget *m_widget;
QCString m_key;
QCString m_string;
int m_number;
static inline ClassType classType( const QCString &name )
{
return name == "KLineEdit" ? LineEdit
: name == "KComboBox" ? ComboBox
: name == "QSpinBox" ? SpinBox : CheckBox;
}
public:
XineConfigEntry( QWidget *parent, QGridLayout*, xine_cfg_entry_t* );
bool isChanged() const;
void save( xine_t* );
void reset();
inline const QCString &key() const { return m_key; }
};
class XineConfigDialog : public KDialogBase
{
static KDialogBase *s_instance;
QPtrList<XineConfigEntry> m_entrys;
xine_t *m_xine;
public:
XineConfigDialog( xine_t *xine, QWidget *parent );
bool isUnsavedSettings() const;
void saveSettings();
static KDialogBase *instance() { return s_instance; }
protected:
virtual void slotUser1();
virtual void slotHelp();
};
#endif