author | sandman <sandman> | 2002-09-20 01:42:10 (UTC) |
---|---|---|
committer | sandman <sandman> | 2002-09-20 01:42:10 (UTC) |
commit | b1f3d33cb0b3f203f153074a8812d5988c3031b2 (patch) (side-by-side diff) | |
tree | 1734ac2808dab8f0982b23a2a9101486fcdcfee5 /noncore/settings/appearance2/stylelistitem.h | |
parent | 9204c61f669fb265f6c5f14bfd6ca363a2929e40 (diff) | |
download | opie-b1f3d33cb0b3f203f153074a8812d5988c3031b2.zip opie-b1f3d33cb0b3f203f153074a8812d5988c3031b2.tar.gz opie-b1f3d33cb0b3f203f153074a8812d5988c3031b2.tar.bz2 |
New experimental appearance settings
Diffstat (limited to 'noncore/settings/appearance2/stylelistitem.h') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/settings/appearance2/stylelistitem.h | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/noncore/settings/appearance2/stylelistitem.h b/noncore/settings/appearance2/stylelistitem.h new file mode 100644 index 0000000..3cc63dc --- a/dev/null +++ b/noncore/settings/appearance2/stylelistitem.h @@ -0,0 +1,85 @@ +#ifndef STYLELISTITEM_H +#define STYLELISTITEM_H + +#include <qlistbox.h> +#include <qpe/styleinterface.h> + +#include <stdio.h> + +class StyleListItem : public QListBoxText { +public: + StyleListItem ( const QString &t, QStyle *sty ) : QListBoxText ( t ) + { + m_lib = 0; + m_style_if = 0; + m_settings_if = 0; + m_style = sty; + } + + StyleListItem ( QLibrary *lib, StyleInterface *iface ) : QListBoxText ( iface-> name ( )) + { + m_lib = lib; + m_style_if = iface; + m_settings_if = 0; + m_style = iface-> create ( ); + + iface-> queryInterface ( IID_StyleSettings, (QUnknownInterface **) &m_settings_if ); + } + + virtual ~StyleListItem ( ) + { + delete m_style; + + if ( m_settings_if ) + m_settings_if-> release ( ); + if ( m_style_if ) + m_style_if-> release ( ); + delete m_lib; + } + + bool hasSettings ( ) const + { + return ( m_settings_if ); + } + + QWidget *settings ( QWidget *parent ) + { + return m_settings_if ? m_settings_if-> create ( parent ) : 0; + } + + bool setSettings ( bool accepted ) + { + if ( !m_settings_if ) + return false; + + if ( accepted ) + return m_settings_if-> accept ( ); + else { + m_settings_if-> reject ( ); + return false; + } + } + + QString key ( ) + { + if ( m_style_if ) + return QString ( m_style_if-> key ( )); + else + return text ( ); + } + + QStyle *style ( ) + { + return m_style; + } + +private: + QLibrary *m_lib; + QStyle *m_style; + StyleInterface *m_style_if; + StyleSettingsInterface *m_settings_if; + +}; + + +#endif |