qskinny/src/controls/QskSkinManager.h

52 lines
1.2 KiB
C
Raw Normal View History

/******************************************************************************
* QSkinny - Copyright (C) 2016 Uwe Rathmann
* This file may be used under the terms of the QSkinny License, Version 1.0
*****************************************************************************/
#ifndef QSK_SKIN_MANAGER_H
#define QSK_SKIN_MANAGER_H
#include "QskGlobal.h"
2018-08-03 08:30:23 +02:00
2018-07-19 14:10:48 +02:00
#include <qobject.h>
#include <memory>
class QskSkin;
class QskSkinFactory;
#if defined( qskSkinManager )
#undef qskSkinManager
#endif
#define qskSkinManager QskSkinManager::instance()
class QSK_EXPORT QskSkinManager : public QObject
{
Q_OBJECT
2018-08-03 08:15:28 +02:00
public:
static QskSkinManager* instance();
void addPluginPath( const QString& );
void removePluginPath( const QString& );
2018-08-03 08:15:28 +02:00
void setPluginPaths( const QStringList& );
QStringList pluginPaths() const;
void registerFactory( const QString& factoryId, QskSkinFactory* );
void unregisterFactory( const QString& factoryId );
QStringList skinNames() const;
QskSkin* createSkin( const QString& skinName ) const;
2018-08-03 08:15:28 +02:00
protected:
QskSkinManager();
2018-07-31 17:32:25 +02:00
~QskSkinManager() override;
class PrivateData;
std::unique_ptr< PrivateData > m_data;
};
#endif